完美体育·(中国)手机网页版科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

Keil C166 v7.54 uVision开发工具

软件大小:49 MB 软件性质: 免费软件
更新时间:2015/3/5 11:07:04 应用平台:Win9X/Win2000/WinXP
下载次数:14066 下载来源:完美体育·(中国)手机网页版科技
软件语言:英文 软件类别:ARM软件工具 > Keil C166
下载
Keil C166 V7.54 uVision5开发工具 更新日志(2014年8月):



Release Date: 5 August 2014

  • [C166 Compiler]
    • Corrected: warning C912 'constant': value truncated removed on expressions that used local variables definition. Example:
      void main (void)
      {
        unsigned char a = 8;
        unsigned char b = a + 5;   // <- Incorect warning generation C192: 'constant': value truncated.
      
        while(1);
      }
      
    • Corrected: incorect return type conversion from int to huge pointer. Example:
      #include "string.h"
      
      int foo (char *a, char *b, unsigned char c, unsigned char d, unsigned char e) 
      {
        return (c == d) && ((e == d) ? (a == b) : strcmp(a,b));         //  warning C40: 'int' converted to 'huge' pointer
      }
      
    • Added: error E201 to show errors with 'const sdata' attributes.
  • [L166 Linker]
    • Increased: maximum amount of symbols for linking from 32000 to 48000.
  • [OH66 Object\Hex converter]
    • Enhanced: OH166 supports now an invocation line up to 255 characters.
  • [μVision Debugger\Simulator]
    • Corrected: the watch window displayed erroneously SFRs as 32 bit values. SFR values displayed correctly as 16 bit values.
    • Corrected: under some circumstances SIGNAL functions could change the content of the disassembly window. This problem was introduced with C166 version 753.
    • Corrected: under some circumstances after run a LOAD command, previously defined and used debug functions become undefined identifiers.
    • Improved: loader can read HEX files with corrupted line endings.
  • [μVision]
    • This C166 release comes with μVision V5.11.2.0.

C166 Version 7.53 Release

Release Date: 4 July 2013

  • [C166 Compiler]
    • Corrected: an address conversion error. Address conversion from xhuge address to 'unsigned long' does not consider 64K segment boundaries. Example:
      #pragma LARGE BROWSE MOD167 DEBUG
      
      
      unsigned char xhuge ucArr[0x20000];      // Assuming that this array is located at address 0x10204.
      
      unsigned int xhuge * Addr1 = &ucArr[0x10000];                     // The Addr1 is 0x20204 which is the expected address.
      unsigned long const  Addr2 = (unsigned long)(&ucArr[0x10000]);    // The Addr2 is 0x10204 which is an incorrect result.
                                                                        // This cast does not consider the 64K segment overvlow.
      
    • Corrected: a stack corruption when __inline function is used with OT(4) or greater. This problem was introduced with C166 version 750. Example:
      unsigned char g_ucArr[4]={0x10,0x11,0x12,0x13};
      
      static __inline void InlFnc(unsigned char par)
      {
        signed long *slDat;
        unsigned char ucArr[4];
      
        ucArr[0]=g_ucArr[3];
        ucArr[1]=g_ucArr[2]; 
        ucArr[2]=g_ucArr[1]; 
        ucArr[3]=g_ucArr[par]; 
      
        slDat=(signed long *)ucArr;
      }
      
      
      void foo(void)     // In function foo(), the compiler alocates only 2 bytes on the stack,
      {                  // while the object inside the inlined function InlFnc() needs 4 bytes.
       InlFnc(0);        // That causes corruption of other data on the stack.
      } 
      
  • [ULink2]
    • Since C166 version 7.52 the firmware of the ULINK2 target debuger will be updated to version 2 which will not work with older C166 installations.
      The .\C166\ULINK\Utilities\UL2_Configure.exe tool allows to switch back to an older firmware version when backward compatibility is needed.
  • [μVision4]
    • This C166 release comes with μVision V4.72.9.0.
    • Refer to Revision History for a complete list.