Keil Logo

What's New in C166 Version 7.56

  • [C166 C Compiler]
    • Corrected: error C67 'a': 'undefined identifier' was issued on an enumeration passed as parameter to a function. For example:
      void foo( enum enA { a, b, i_a = a } );
      
      *** ERROR C67 'a': undefined identifier
      
    • Corrected: an erroneously issued warning C118 in case of an enum definition with negative values. Exmaple:
      test.c
      ......
      enum { m4 = -4, m3 = -3, m2 = -2, m1 = -1, z };
      
      test.c(2): warning C118: enum constant: signed value out of range
      

    • Corrected: under some circumstances a wrong relocation of register variables will be generated in case of the following expression and optimize level 8 Register Variable Lifetime Analysis. Example:
      int gl_a;
      int gl_b;
      
      int foo(void) {
         int a;
         int b;
         int error;
      
         a = gl_a;                               /* Source line #12 */
         b = gl_b;                               /* Source line #13 */
      
         error = abs(a/10-b/10);                 /* Source line #15 */
      
         if (error > 100)
            return 1;
         else
            return 0;
      }
      
      +-----------------------------
      Wrong code generation
      +-----------------------------
      .........
                                                 ; SOURCE LINE # 13
      0004 F2F40000 R    MOV       R4,gl_b                           -------------\ 
      ;---- Variable 'b' assigned to Register 'R4' ----                            \  The compiler optimization erroneously relocates the register variable b
                                                 ; SOURCE LINE # 15                /  to the register R4 which is used by the next instruction.
      0008 E0A4          MOV       R4,#0AH                           -------------/
      000A F6F40EFE      MOV       MDL,R4                                         |
      000E 4B44          DIV       R4                                             |
      .........                                                                   |
                                                                                  |
                                                                                  |
      +-----------------------------                                              |
      Corrected code generation                                                   |
      +-----------------------------                                              |
      .........                                                                   |
                                                 ; SOURCE LINE # 13               |
      0004 F2F60000 R    MOV       R6,gl_b                           -------------\ 
      ;---- Variable 'b' assigned to Register 'R6' ----                            \  The corrected code optimization is using now the register R6
                                                 ; SOURCE LINE # 15                /  for the relocation of register variable b.
      0008 E0A4          MOV       R4,#0AH                           -------------/
      000A F6F60EFE      MOV       MDL,R6
      000E 4B44          DIV       R4
      
  • [L166 Linker]
    • Increase: the max number of externals/publics to 32766.
  • [µVision]
    • This C166 release comes with µVision V5.21.1.
    • µVision now offers Japanese localization on Windows PCs with the 'primary language' Japanese.
      To select the language use the uVision menu item Edit - Configuration - Other - Startup - Language.
    • A Japanese Getting Started user's guide is available in the uVision Books Window.
    • Added: new option to limit the Find in Files utility to the "Current Document".
    • Enhanced: editor now supports Arabic, Baltic, Eastern European, Greek, Hebrew, Russian, Thai, Turkish, and Vietnamese character sets.
    • Corrected: Bookmark navigation is now working only on the "Current Document".
    • Corrected: opening struct elements in the Watch Window did not always show up-to-date values.
  • [Supported Operating Systems]
    • µVision and it's dynamically loaded libraries (DLL) have been ported to MSVC 2015. MSVC 2015 does not officially support Windows XP any longer.
    • Refer to System Requirements Overview for hardware and operating system requirements.
  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.