Keil Logo

What's New in C166 Version 7.07

  • [C166 Compiler]
    • Corrected: BYTEALIGN did create byte accesses to XSFR registers. Depending on the peripheral this may create unexpected side-effects. Now the compiler generates always WORD writes to the XSFR address range. Example:
      #pragma bytealign
      #define ADC0_KSCFG             (*((unsigned int volatile sdata *) 0xE00C))    // XSFR definition
      
      ADC0_KSCFG = ( ( 1<<1 ) | ( 1<<0 ) ) ;  /* previous compiler versions generate two byte writes which may cause side-effects */
      
    • Corrected: In previous compiler versions using BYTEALIGN in combination with (unsigned) long multiplication may result in Illegal Word Operand Access Trap when the target variable resides on odd memory address. Example:
      #pragma bytealign
      struct { unsigned char uc; unsigned long ul; } val;
      extern unsigned int ifunc (void);
      
      val.ul = ifunc() * 10L;    // previous compiler versions generate 16-bit write to memory which causes hardware trap
      
  • [C166 Run-Time Library]
    • Corrected: sprintf function which fails in XLARGE model to write in a buffer that crosses a 64k border.
  • [µVision4 Debugger]
    • Corrected: an error which occurs when HEX files use UNIX newline encoding (LF only instead of CR/LF).
  • [µVision4]
    • This C166 release comes with µVision V4.24.00.
  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.