新蒲京娱乐场官网-www.8555cc.com|最新网站NO.1-2

新蒲京娱乐场官网8555cc最新网站提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

新蒲京娱乐场官网-www.8555cc.com|最新网站NO.1-2

首页 > 下载中心 > ARM软件工具 > Keil C51 > keil C251 v5.57 uVision5开发工具

keil C251 v5.57 uVision5开发工具

软件大小:38.8 MB 软件性质: 免费软件
更新时间:2015/3/5 11:04:25 应用平台:Win9X/Win2000/WinXP
下载次数:15059 下载来源:新蒲京娱乐场官网8555cc最新网站
软件语言:英文 软件类别:ARM软件工具 > Keil C51
下载

Keil C251 V5.57 uVision5开发工具 更新日志(2014年8月):



Release Date: 5 August, 2014

  • Comes with compiler version C251 V5.57
  • Removed: unnecessary WARNING C53 when bits are defined and declared in the same module.
  • Corrected: problem with wrong type conversion when bitwise NOT operator (~) is used. Example:
    volatile unsigned long va, vb;
    
    void main(void) {
       vb = va & ~0x2;     <-- wrong   : results in  vb = va & 0xFFFD instead of  vb = va & 0xFFFFFFFD
       vb &= ~0x2;         <-- wrong   : results in  vb &= 0xFFFD instead of  vb &= 0xFFFFFFFD
       vb = va & -3;       <-- correct : results in  vb = va & 0xFFFFFFFD
    }
    
  • [L251 Linker/Locater]
    • Corrected: L251 code optimization does not remove common blocks for unused functions. These code blocks remains inside the image. Example: 
      unsigned char a, b, c;
      unsigned char darr [0x10];
      
      void FuncA (void) {
        darr[c] = darr[b];
      }
      
      void FuncB (void) {
        darr[c] = darr[b];
      }
      
      void FuncC (void) {
        darr[c] = darr[a] + darr[b];
      }
      
      void FuncD (void) {
        darr[c] = darr[a] + darr[b];
      }
      
      void main(void) {
        FuncA ();
        FuncB ();
        while(1);
      }
      
      
      ; FUNCTION FuncA (BEGIN)           ; FUNCTION FuncB (BEGIN)            ; FUNCTION FuncC (BEGIN)                ; FUNCTION FuncD (BEGIN)          
          R     MOV     A,#LOW darr          R     MOV     A,#LOW darr           R     MOV     A,#LOW darr ----- + ----- R     MOV     A,#LOW darr     
          R     ADD     A,b                  R     ADD     A,b                   R     ADD     A,b               |       R     ADD     A,b             
                MOV     R0,A     ----- + -----     MOV     R0,A                        MOV     R0,A              |             MOV     R0,A            
                MOV     A,@R0          |           MOV     A,@R0                       MOV     A,@R0             |             MOV     A,@R0           
                MOV     R7,A           |           MOV     R7,A                        MOV     R7,A              |             MOV     R7,A            
          R     MOV     A,#LOW darr    |     R     MOV     A,#LOW darr           R     MOV     A,#LOW darr ----- + ----- R     MOV     A,#LOW darr     
          R     ADD     A,c            |     R     ADD     A,c                   R     ADD     A,a               |       R     ADD     A,a             
                MOV     R0,A           |           MOV     R0,A                        MOV     R0,A              |             MOV     R0,A            
                MOV     @R0,AR7  ----- + -----     MOV     @R0,AR7                     MOV     A,@R0             |             MOV     A,@R0           
                RET                    |           RET                                 ADD     A,R7              |             ADD     A,R7            
                                       o-> Common code for FuncA and FuncB             MOV     R7,A              |             MOV     R7,A            
                                                                                 R     MOV     A,#LOW darr       |       R     MOV     A,#LOW darr     
                                                                                 R     ADD     A,c               |       R     ADD     A,c             
                                                                                       MOV     R0,A              |             MOV     R0,A            
                                                                                       MOV     @R0,AR7           |             MOV     @R0,AR7         
                                                                                       RET                       |             RET                     
                                                                                                                 o-> Common code for FuncC and FuncD   
      
      

      In the example above the functions FuncC() and FuncD() are removed when the REMOVEUNUSED linker directive is specified. Now, the first part of the common code block (FUNCTION ?L?COM0001) is no longer necessary. In previous verions this was still part of the image. With the new linker enhancement even this code block is removed.

      ----- FUNCTION ?L?COM0001 (BEGIN) -----                                                                  
      000021 7408              MOV      A,#LOW darr  ---+                                                      
      000023 2519              ADD      A,b             |\                                                     
      000025 F8                MOV      R0,A            | \                                                    
      000026 E6                MOV      A,@R0           |  o-> Common code for FuncC and FuncD                 
      000027 FF                MOV      R7,A            |                                                      
      000028 7408              MOV      A,#LOW darr  ---+                                                      
      00002A         ?L?COM0002:                                                                               
      00002A F8                MOV      R0,A         ---+                                                      
      00002B E6                MOV      A,@R0           |\                                                     
      00002C FF                MOV      R7,A            | \                                                    
      00002D 7408              MOV      A,#LOW darr     |  o-> Common code for FuncA and FuncB                 
      00002F 251A              ADD      A,c             |                                                      
      000031 F8                MOV      R0,A            |                                                      
      000032 A607              MOV      @R0,AR7      ---+                                                      
      000034 22                RET                                                                             
      ----- FUNCTION ?L?COM0001 (END) -------                                                                  
      
      
  • [μVision]
    • This C251 release comes with μVision V5.11.2.0.