Keil Logo

What's New in C51 Version 9.60

  • [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]
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.