Technical Support
Support Resources
Product Information
|
What's New in C51 Version 9.53
-
[LX51
Linker/Locater]
-
Implemented: the PUBLICSONLY Linker directive.
The generated objectfile contains only public symbol
information from the inputfile.
-
Enhanced: LX51 code optimization now removes common blocks
for unused functions. Example:
unsigned char a, b, c;
unsigned char darr [0x10];
void FuncA (void) {
darr[c] = darr[b];
}
void FuncB (void) {
darr[c] = darr[b];
}
void FuncC (void) {
darr[c] = darr[a] + darr[b];
}
void FuncD (void) {
darr[c] = darr[a] + darr[b];
}
void main(void) {
FuncA ();
FuncB ();
while(1);
}
; FUNCTION FuncA (BEGIN) ; FUNCTION FuncB (BEGIN) ; FUNCTION FuncC (BEGIN) ; FUNCTION FuncD (BEGIN)
R MOV A,#LOW darr R MOV A,#LOW darr R MOV A,#LOW darr ----- + ----- R MOV A,#LOW darr
R ADD A,b R ADD A,b R ADD A,b | R ADD A,b
MOV R0,A ----- + ----- MOV R0,A MOV R0,A | MOV R0,A
MOV A,@R0 | MOV A,@R0 MOV A,@R0 | MOV A,@R0
MOV R7,A | MOV R7,A MOV R7,A | MOV R7,A
R MOV A,#LOW darr | R MOV A,#LOW darr R MOV A,#LOW darr ----- + ----- R MOV A,#LOW darr
R ADD A,c | R ADD A,c R ADD A,a | R ADD A,a
MOV R0,A | MOV R0,A MOV R0,A | MOV R0,A
MOV @R0,AR7 ----- + ----- MOV @R0,AR7 MOV A,@R0 | MOV A,@R0
RET | RET ADD A,R7 | ADD A,R7
o-> Common code for FuncA and FuncB MOV R7,A | MOV R7,A
R MOV A,#LOW darr | R MOV A,#LOW darr
R ADD A,c | R ADD A,c
MOV R0,A | MOV R0,A
MOV @R0,AR7 | MOV @R0,AR7
RET | RET
o-> Common code for FuncC and FuncD
In the example above the functions FuncC() and FuncD() are
removed when the REMOVEUNUSED linker directive is
specified. Now, the first part of the common code block
(FUNCTION ?L?COM0001) is no longer necessary. In previous
verions this was still part of the image. With the new linker
enhancement even this code block is removed.
----- FUNCTION ?L?COM0001 (BEGIN) -----
000021 7408 MOV A,#LOW darr ---+
000023 2519 ADD A,b |\
000025 F8 MOV R0,A | \
000026 E6 MOV A,@R0 | o-> Common code for FuncC and FuncD
000027 FF MOV R7,A |
000028 7408 MOV A,#LOW darr ---+
00002A ?L?COM0002:
00002A F8 MOV R0,A ---+
00002B E6 MOV A,@R0 |\
00002C FF MOV R7,A | \
00002D 7408 MOV A,#LOW darr | o-> Common code for FuncA and FuncB
00002F 251A ADD A,c |
000031 F8 MOV R0,A |
000032 A607 MOV @R0,AR7 ---+
000034 22 RET
----- FUNCTION ?L?COM0001 (END) -------
-
[AX51
Assembler]
-
Enhanced: SEGMENT assembler statement now also
supports ALIGN (1) as minimum alignment value.
-
[New
Supported Devices]
-
CAST
S8051XC3.
-
Maxim
78M6613.
-
SigmaDesigns
ZM3102, ZM4102, ZM4101, and
SD3402.
-
Silabs
C8051F970-A-GM,
C8051F971-A-GM,
C8051F972-A-GM,
C8051F973-A-GM,
C8051F974-A-GM,
C8051F975-A-GM,
C8051F370,
C8051F371,
C8051F374,
C8051F375,
C8051F388,
C8051F389,
C8051F38A,
C8051F38B,
C8051F38C,
C8051F390,
C8051F391,
C8051F392,
C8051F393,
C8051F394,
C8051F395,
C8051F396,
C8051F397,
C8051F398,
C8051F399,
C8051F750,
C8051F750B,
C8051F751,
C8051F751B,
C8051F752,
C8051F752B,
C8051F755B,
C8051F756B,
C8051F757B,
C8051F760,
C8051F761,
C8051F762,
C8051F765,
C8051F766,
C8051F767,
C8051T626,
C8051T627,
C8051T670, and
C8051T671.
-
Texas
Instruments
CC2541F128,
CC2541F256,
CC2543, CC2544, and
CC2545.
-
Vitesse
VSC7388, VSC7389, VSC7390, VSC7391, VSC7395, VSC7420, and
VSC7422.
-
[µVision]
-
This C51 release comes with µVision
V5.11.2.0.
|