Good evening,
I want to test my own scatter-file with the functions on this page.
http://www.keil.com/support/man/docs/armlink/armlink_chdcgbjd.htm
the values I get are wrong or I don't understand the meaning of these values.
First of all here is my scatter-file.
LOAD 0x10000000 0x003FFFFF { EXT_FLASH 0x10000000 0x003FFFFF { *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } EXT_SRAM 0x20000000 0x03FFFFFF { phy_init.o (+RW, +ZI) } INT_RAM 0x200000 0x000FFFFF { .ANY(+RW +ZI) } }
Image$$INT_RAM$$RW$$Length = 0xE59FF018 Image$$INT_RAM$$ZI$$Length = 0xFFFFFFFF
Image$$EXT_FLASH$$RW$$Length = 0xE59FF018 Image$$EXT_FLASH$$ZI$$Length = 0xE59FF018 Image$$EXT_SRAM$$Length = 0xE100000
Image$$INT_RAM$$Base = 0x00000000 Image$$EXT_FLASH$$Base = 0xE59FF018 Image$$EXT_SRAM$$Base = 0x00000000
Image$$EXT_SRAM$$Limit = 0x00000000 Image$$EXT_FLASH$$Limit = 0x00000000 Image$$INT_RAM$$Limit = 0x00000000
Ì don't understand these values. Why is the limit always 0x00000000??? The size of the RAM would overwrite everything... Are there so stupid errors in my scatter-file?
Could somebody of you unearth the truth for me?
best regards Chris
Now I took a look into my map.-file and there were all values correct.
e.g.
Execution Region INT_RAM (Base: 0x00200000, Size: 0x00001930, Max: 0x000fffff, ABSOLUTE)
In my c-file I only wrote for example:
extern unsigned int Image$$INT_SRAM$$Length;
printf("SRAM Lenght: %08x\n", Image$$INT_SRAM$$Length);
ok I get my error - I forgot to install the address-operator...
But one question remained: Why is the length of the RW-data (external Flash) and the ZI data of the external Flash 0x00000000?
The flash limit is 0x100010DC.