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.
-
Corrected: warning C912 'constant': value truncated removed on expressions that used local variables definition. Example:
-
[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. }
-
Corrected: an address conversion error. Address conversion from xhuge address to 'unsigned long' does not consider 64K segment boundaries. Example:
-
[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.
-
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.
-
[μVision4]
- This C166 release comes with μVision V4.72.9.0.
- Refer to Revision History for a complete list.