What's New in C51 Version 9.52
[Cx51 Compiler]
Modified: the warning C294: unreachable code will be issued instead of a compiler error for unreachable code statements. Example:
int foo = 1 ;
int bar ;
int main( void )
{
switch( foo )
{
bar = 0 ; // warning C294: unreachable code
case 1:
bar = 1 ;
break ;
case 2:
bar = 2 ;
break ;
}
return( 0 ) ;
}
Corrected: wrong XDATA address calculation which may occurs with combined pointer and int arithmetic. Example:
unsigned char xdata b[256]; // Problem does not exist when array size > 256
void xdata *p;
unsigned int i = 256;
void main (void) {
p = &b[256-i]; // Correct result.
p = b + 256 - i; // Incorrect result. Only the LOW BYTE of i has been used for the calculation.
}
Corrected: an ignored pointer cast which occurs under some circumstances with far and generic pointers. Example:
unsigned short foo (char far *farPtr) {
return (unsigned char) farPtr; // Explicite cast is ignored.
}
[LX51 Linker/Locater]
Corrected: a wrong address calculation which occurs when const in code banks combined with linker code packing.
Added: Error 144: OVERLAY GROUP SEGMENT CANNOT HAVE 'LAST' ADDRESS ASSIGNMENT message. The LAST attribute cannot be used to locate segments that collect overlayable segments.
[AX51 Assembler]
Corrected: an erroneously issued error A57 'REGISTER USAGE' REQUIRES A PUBLIC CODE SYMBOL which occurs when REGUSE directive is used by mixed-case (composed by upper and lower case characters) symbols.
[New Supported Devices]
Texas Instruments
CC2541F128 and CC2541F256.
[ULink2]
Wiht this release the firmware of the ULINK2 target debuger will be updated to version 2 which will not work with older C51 installations.
The .C51ULINKUtilitiesUL2_Configure.exe tool allows to switch back to an older firmware version when backward compatibility is needed.
[µVision4]
This C51 release comes with µVision V4.72.9.0.
[Cx51 Compiler]
Modified: the warning C294: unreachable code will be issued instead of a compiler error for unreachable code statements. Example:
int foo = 1 ;
int bar ;
int main( void )
{
switch( foo )
{
bar = 0 ; // warning C294: unreachable code
case 1:
bar = 1 ;
break ;
case 2:
bar = 2 ;
break ;
}
return( 0 ) ;
}
Corrected: wrong XDATA address calculation which may occurs with combined pointer and int arithmetic. Example:
unsigned char xdata b[256]; // Problem does not exist when array size > 256
void xdata *p;
unsigned int i = 256;
void main (void) {
p = &b[256-i]; // Correct result.
p = b + 256 - i; // Incorrect result. Only the LOW BYTE of i has been used for the calculation.
}
Corrected: an ignored pointer cast which occurs under some circumstances with far and generic pointers. Example:
unsigned short foo (char far *farPtr) {
return (unsigned char) farPtr; // Explicite cast is ignored.
}
[LX51 Linker/Locater]
Corrected: a wrong address calculation which occurs when const in code banks combined with linker code packing.
Added: Error 144: OVERLAY GROUP SEGMENT CANNOT HAVE 'LAST' ADDRESS ASSIGNMENT message. The LAST attribute cannot be used to locate segments that collect overlayable segments.
[AX51 Assembler]
Corrected: an erroneously issued error A57 'REGISTER USAGE' REQUIRES A PUBLIC CODE SYMBOL which occurs when REGUSE directive is used by mixed-case (composed by upper and lower case characters) symbols.
[New Supported Devices]
Texas Instruments
CC2541F128 and CC2541F256.
[ULink2]
Wiht this release the firmware of the ULINK2 target debuger will be updated to version 2 which will not work with older C51 installations.
The .C51ULINKUtilitiesUL2_Configure.exe tool allows to switch back to an older firmware version when backward compatibility is needed.
[µVision4]
This C51 release comes with µVision V4.72.9.0.
一周热门 更多>