Hello Sir,
I am using LPC2214 on which external ram is configured. In my program i have used internal ram(16K) for only .data section and used external ram (128K)for the .bss section. I am not able to configure the startup.s. I am getting warnings like below.
test.sct(27): warning: L6314W: No section matches pattern eeprom.o(ZI). test.sct(27): warning: L6314W: No section matches pattern eeprom.o(RW). test.sct(31): warning: L6314W: No section matches pattern init_Mar2014.o(ZI). test.sct(31): warning: L6314W: No section matches pattern init_Mar2014.o(RW). Program Size: Code=146904 RO-data=52 RW-data=224 ZI-data=92872
No i have not created the scatter file, it is generated by the compiler itself. Should I create it? Then what is the procedure and what changes i should make?
In the options for target dialog default start size startup IROM1 Enabled 0x0 - 0x40000 Enabled
default start size Noinit IRAM1 Enabled 0x40000000 0x4000 Enabled RAM1 Enabled 0x81000000 0x20000 Disabled
In linker dialog box
Use memory form target dialog box is enabled Report 'might fail' conditions as errors enabled
; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; *************************************************************
LR_IROM1 0x00000000 0x00040000 { ; load region size_region ER_IROM1 0x00000000 0x00040000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) Startup.o (+RO) config_data_GLE.o (+RO) config_FSU_data_26May2014.o (+RO) eeprom.o (+RO) general_function.o (+RO) GUI_interface.o (+RO) i2c.o (+RO) init_Mar2014.o (+RO) main.o (+RO) relay.o (+RO) supporting_functions.o (+RO) timer.o (+RO) .ANY (+RO) } RW_RAM1 0x81000000 0x0001F400 { ; RW data Startup.o (+ZI +RW) config_data_GLE.o (+ZI +RW) config_FSU_data_26May2014.o (+ZI +RW) eeprom.o (+ZI +RW) general_function.o (+ZI +RW) GUI_interface.o (+ZI +RW) i2c.o (+ZI +RW) init_Mar2014.o (+ZI +RW) main.o (+ZI +RW) relay.o (+ZI +RW) supporting_functions.o (+ZI +RW) timer.o (+ZI +RW) .ANY (+RW +ZI) } RW_IRAM1 0x40000000 UNINIT 0x00004000 { .ANY (+RW +ZI) } }
You have read the instructions directly above the message input box, haven't you? The information about the PRE tags are there for a reason.
Or do you avoid the tags of ethical, political or religious reasons?
LR_IROM1 0x00000000 0x00040000 { ; load region size_region ER_IROM1 0x00000000 0x00040000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) Startup.o (+RO) config_data_GLE.o (+RO) config_FSU_data_26May2014.o (+RO) eeprom.o (+RO) general_function.o (+RO) GUI_interface.o (+RO) i2c.o (+RO) init_Mar2014.o (+RO) main.o (+RO) relay.o (+RO) supporting_functions.o (+RO) timer.o (+RO) .ANY (+RO) } RW_RAM1 0x81000000 0x0001F400 { ;RW data Startup.o (+ZI +RW) config_data_GLE.o (+ZI +RW) config_FSU_data_26May2014.o (+ZI +RW) e eprom.o (+ZI +RW) general_function.o (+ZI +RW) GUI_interface.o (+ZI +RW) i2c.o (+ZI +RW) init_Mar2014.o (+ZI +RW) main.o (+ZI +RW) relay.o (+ZI +RW) supporting_functions.o (+ZI +RW) timer.o (+ZI +RW) .ANY (+RW +ZI) } RW_IRAM1 0x40000000 UNINIT 0x00004000 { .ANY (+RW +ZI) } }
Did your real scatter file really look like this - with no identation?
Reposting the same text after the web server have already muched on the text doesn't give the same result as if you are careful and post the data directly from the scatter file - and look at the preview.
For example:
config_FSU_data_26May2014.o (+ZI +RW) e <=== this e shouldn't be here eprom.o (+ZI +RW) <=== and this file should be eeprom.o, shouldn't it?
Remember that if you don't post the verbatime, and exact, contents of your scatter file, then the line numbers you mention in your first post does not make sense.
One thing I'm a bit confused about is if Keil has changed their tools. You say you didn't modify the scatter file. But it contains a huge list of files. They normally manage almost everything with just the rules
*.o (RESET, +First) * (InRoot$$Sections) .ANY (+RO)
and
.ANY (+RW +ZI)
without listing any actual object file names. Explicit object file names is what you need to list when you want to force a specific order or force a specific file to have the content in a specific memory region.