Keil Logo

What's New in C51 Version 9.51

  • [New Supported Devices]
  • [C51 Compiler]
    • Corrected: calculation of negative constants within nested calls may create incorrect results (this problem was introduced in C51 V9.50a). For example:
      #define TDO  5
      #define GET_TDO()   (Arr[TDO])
      
      unsigned char xdata Arr[10];
      
      unsigned char TestTDO() {
        unsigned char ret;
        ret = (unsigned char)(((GET_TDO()-1)*2)-1);   // Incorrect result. For the negative constant a subtraction has been used instead of an addition.
        return ret;
      }
      
    • Corrected: incorrect pointer arithmetic with subtract of unsigned int variables for XDATA arrays with sizeof < 256 bytes. For example:
      unsigned char xdata b[256];  /* Problem does not exist when array size > 256  */
      void xdata *p;
      unsigned int i = 256;        /* Problem only appears for unsigned int variables */
      
      void main (void)  {
        p = &b[256-i];             /* Works no problem when array index is used */
        p = b + 256 - i;           /* Failed on pointer arithmetic when uint variable is subtracted */
      }
      
      
  • [LX51 Linker/Locater]
    • Corrected: a potential DPTR corruption which may occurs in code-banking applications when Global Register Coloring is enabled.
  • [µVision4]
    • This C51 release comes with µVision V4.60.6.8.
    • Enhanced: the Logic Analyzer allows rearranging signals through a simple drag&drop of the signal name. Signals can be scaled in width and height.
    • Corrected: under certain circumstances the Source Browser incorrectly reported several definitions of an "enum".
    • Refer to Revision History for a complete list.
  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.