KEIL C51 Version 9.60 Release

  • [CX51 Compiler]
    • Modified: sbit symbol names with more than 40 characters get truncated. This limitation has been removed. Example:
      #define SFR_P2 0xA0
      
      sbit tested_very_long_compiler_symbol_name_group_a_section_b = SFR_P2^1;        /* Definition of a symbol name with 55 characters. */
                    |         |         |         |         |
                    |         |         |         |         +-----  Character no 50
                    |         |         |         +---------------  Character no 40
                    |         |         +-------------------------  Character no 30
                    |         +-----------------------------------  Character no 20
                    +---------------------------------------------  Character no 10
      
      
           tested_very_long_compiler_symbol_name_gr                 <--- The generated symbol name has only 40 characters.
                                                   |             |
                                                   o-------------o  Truncated section
      ...
      
    • Corrected: A wrong code will be generated for a small while-loop when NOAREGS has been specified. This error has been introduced with compiler version 9.59. Example:
      Correct code generation without NOAREGS.
      
      0000         ?C0001:
      0000 EF                MOV     A,R7     <--- Load of ACC. >-------------------------------------------+
      0001 1F                DEC     R7                                                                     |
      0002 AC06              MOV     R4,AR6                                                                 |
      0004 7001              JNZ     ?C0007   o--- The JNZ instruction jumps based on the value of ACC. <---+
      0006 1E                DEC     R6                                
      0007         ?C0007:                                             
      0007 4C                ORL     A,R4                              
      0008 70F6              JNZ     ?C0001                            
      
      
      Wrong code generation with NOAREGS.
      
      0000         ?C0001:
      0000 EF                MOV     A,R7     <--- Load of ACC. >-------------------------------------------+
      0001 1F                DEC     R7                                                                     |
      0002 EE                MOV     A,R6     <--- The generated code overwrites the ACC register. >--------X
      0003 FC                MOV     R4,A                                                                   |
      0004 7001              JNZ     ?C0007   o--- The JNZ instruction is using the wrong value! <----------+
      0006 1E                DEC     R6                                
      0007         ?C0007:                                             
      0007 4C                ORL     A,R4                              
      0008 70F6              JNZ     ?C0001                            
      ...
      
  • [New Supported Devices]
  • [Device Simulation]
    • Corrected: for Atmel AT89C51CC03 the simulation crashes during the startup phase when the project was initialized with the -pATXC3 setting.
  • [Target debugging \ Device programmer]
    • Added: Segger JLink IS2083 debug driver to support the IS2083B from Microchip.
    • Updated: NULink driver to version 2.06.6875.
  • [µVision]
    • This C51 release comes with µVision V5.27.1.
    • The Customize Tools Menu … option is extended with Export/Import for sharing the tools menu setup across PCs.
  • [Supported Operating Systems]

Download this Update

2019-06-11T16:29:38+00:00