Hi
We want to use the C8051F53xA MCU family from SiLabs for a new project. Therefore we installed the actual evaluation version of the C51 environment ( C51 V9.00 ). Plans is the use of the 2k flash version of the F53xA family. Therefore we use the Small ( program 2k or less ) option at the target tab. The map file shows that the linker place the code segments at the starting address of 0x000800, which is outside of the 2k boundary.
LX51 LINKER/LOCATER V4.41 01/08/2010 13:40:07 PAGE 1 ... CPU MODE: 8051 MODE MEMORY MODEL: SMALL ... ACTIVE MEMORY CLASSES OF MODULE: .\Output\App Test (?C_STARTUP) BASE START END USED MEMORY CLASS ========================================================== C:000000H C:000000H C:001FFFH 000031H CODE C:000000H C:000000H C:001FFFH CONST C:000000H C:000000H C:001FFFH ECODE B00:0000H C:000000H C:001FFFH HCONST I:000000H I:000000H I:0000FFH 000001H IDATA I:000000H I:000000H I:00007FH 000008H DATA MEMORY MAP OF MODULE: .\Output\App Test (?C_STARTUP) START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME ========================================================================= * * * * * * * * * * * D A T A M E M O R Y * * * * * * * * * * * * * 000000H 000007H 000008H --- AT.. DATA "REG BANK 0" 000008H 000008H 000001H BYTE UNIT IDATA ?STACK * * * * * * * * * * * C O D E M E M O R Y * * * * * * * * * * * * * 000000H 000002H 000003H --- OFFS.. CODE ?CO??C_STARTUP?0 000003H 0007FFH 0007FDH --- --- **GAP** 000800H 000811H 000012H BYTE UNIT CODE ?C_C51STARTUP 000812H 000817H 000006H BYTE INBLOCK CODE ?PR?MAIN?MAIN 000818H 00081BH 000004H BYTE INBLOCK CODE ?PR?INIT_DEVICE?PERIDEF 00081CH 00081FH 000004H BYTE INBLOCK CODE ?PR?OSCILLATOR_INIT?PERIDEF 000820H 000826H 000007H BYTE INBLOCK CODE ?PR?PCA_INIT?PERIDEF 000827H 00082DH 000007H BYTE INBLOCK CODE ?PR?PORT_IO_INIT?PERIDEF
The BL51 shows the same result. Also if an other MCU like the F31x is used.
If we use an older C51 ( uV3 V3.31; C51 V8.04; LX51 V4.06 ) the map file seems to be correct.
LX51 LINKER/LOCATER V4.06 01/08/2010 12:00:06 PAGE 1 ... CPU MODE: 8051 MODE MEMORY MODEL: SMALL ... ACTIVE MEMORY CLASSES OF MODULE: .\Output\App Test (?C_STARTUP) BASE START END USED MEMORY CLASS ========================================================== C:000000H C:000000H C:001FFFH 000031H CODE C:000000H C:000000H C:001FFFH CONST C:000000H C:000000H C:001FFFH ECODE B00:0000H C:000000H C:001FFFH HCONST I:000000H I:000000H I:0000FFH 000001H IDATA I:000000H I:000000H I:00007FH 000008H DATA MEMORY MAP OF MODULE: .\Output\App Test (?C_STARTUP) START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME ========================================================================= * * * * * * * * * * * D A T A M E M O R Y * * * * * * * * * * * * * 000000H 000007H 000008H --- AT.. DATA "REG BANK 0" 000008H 000008H 000001H BYTE UNIT IDATA ?STACK * * * * * * * * * * * C O D E M E M O R Y * * * * * * * * * * * * * 000000H 000002H 000003H --- OFFS.. CODE ?CO??C_STARTUP?0 000003H 000014H 000012H BYTE UNIT CODE ?C_C51STARTUP 000015H 00001AH 000006H BYTE INBLOCK CODE ?PR?MAIN?MAIN 00001BH 00001EH 000004H BYTE INBLOCK CODE ?PR?INIT_DEVICE?PERIDEF 00001FH 000022H 000004H BYTE INBLOCK CODE ?PR?OSCILLATOR_INIT?PERIDEF 000023H 000029H 000007H BYTE INBLOCK CODE ?PR?PCA_INIT?PERIDEF 00002AH 000030H 000007H BYTE INBLOCK CODE ?PR?PORT_IO_INIT?PERIDEF
Has anybody any idea where the problem could be?
Regards Raphael
The map file shows that the linker place the code segments at the starting address of 0x000800.
what problem, if you read the eval limitations you would know
Erik
Hi Erik
Thanks for the tip.