Keil Logo

What's New in C51 Version 9.02a

  • [Cx51 Compiler]
    Improved: access to bit-field members with size 1 bit. The compiler uses bit instructions to access such bit-field members. When objects are defined with the bdata memory type, direct bit addressing is used.
    Example:
    struct bf { unsigned char b0:1; unsigned char b1:1; };
    struct bf       a;
    struct bf bdata b;
      :
    if (a.b0 && b.b1)  b.b1 = 0;
    
  • [Cx51 Compiler]
    Corrected: multiplication long = int * int is potentially incorrect in Dallas 390 mode.
  • [Cx51 Compiler]
    Corrected: explicit cast to unsigned char was ignored with complex address arithmetic.
    Example:
    unsigned char far table[256];
    unsigned char i, v;
      :
    v = table[(unsigned char)(16+i+20)];  // index now truncated to 8-bit
    
  • [Cx51 Compiler]
    Corrected: when using conditional operators (? :) in complex parameter lists, there is a potential for unbalanced PUSH / POP instructions. This typically creates a application program crash at the function call.
  • [C Run-Time Library]
    Corrected: the function toint did not detect the value range 0x59 - 0x40 as invalid. Now the function returns -1 for these values.
  • [C Run-Time Library]
    Corrected: timing of Multiplication Division Unit (MDU) in Evatronix R8051XC2 device is faster and now reflected in the C Library. The MDU timing for int/long multiplication and long division is adjusted.
  • [New Supported Devices]
    Infineon XC835MT-2F , XC836-2F , XC836M-1F , XC836M-2F , XC836MT-2F , and XC836T-2F devices.
  • [Device Simulation]
    Corrected: SiLabs C8051F41x devices: SMBus simulation when using I2C generator.
  • [Device Simulation]
    Corrected: SiLabs C8051F12x devices: automatic page switch for interrupts and timing of timer 2/3/4.
  • [Device Simulation]
    Corrected: SiLabs C8051F12x devices: on I²C the receive of more than 256 bytes now generates a stop.
  • [Device Simulation]
    Corrected: SiLabs C8051F36x devices: crossbar did not connect the right I/O signals under some circumstances.
  • [Device Simulation]
    Corrected: Evatronix T8051: CPU instruction timing.
  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.