Hi everibody, thanks for reading..
im newbie with GNU-ARM and i want to compile my first project and test
it in my machine, ARM7, so i need personalize the makefile, i searched
other makefiles to learn how to do one, and after read many of them, i
found that the changes on memory allocation, "always"(in the projects
that i see, always) are here:
------------------------+
FIQ_STACK_SIZE = 0x0100;|
IRQ_STACK_SIZE = 0x0100;|
ABT_STACK_SIZE = 0x0100;| <---- all of this block remains unchangeable
but i
UND_STACK_SIZE = 0x0100;| have my doubts :S
SVC_STACK_SIZE = 0x0400;|
------------------------+
MEMORY
{
ram : org = 0x20000000, len = 64k <---OK, only this changed
}
:S, my memory machine specs are:
-----------------------------------------------start
here--------------------
SRAM :
0x080FFFFF 0x08081000 user AP <---- here i must put my app
0x08080FFF 0x08080000 PM <---- application manager, i must not
touch it
0x0807FFFF 0x08070000 Stack
0x0806FFFF 0x08040000 System buffer
0x0803FFFF 0x08022000 OS
0x08021FFF 0x08000000 System used
FLASH:
0x003FFFFF 0x00210000 User’s AP <---here too, this is the source, in the
other
ocurrence i store the variables i
think.
0x0020FFFF 0x00200000 PM <---- application manager, i must not
touch it
0x001FFFFF 0x000B0000 Font & Buffer
0x000AFFFF 0x00080000 System F/W
0x0007FFFF 0x00010000 OS
0x0000FFFF 0x00000000 System used
--------------------------------------------------ends
here-------------------
so i dont know what to do, the argument above in:
MEMORY
{
ram : org = 0x20000000, len = 64k
}
only specs one memory... i have 2... and one is sram, and other flash...
what must i to do?
Thanks for reading, whatever info is very useful for me please post your
answer, im really afraid about the lost of time :(
Sergio d. Reyes wrote: > MEMORY > { > ram : org = 0x20000000, len = 64k > } > > only specs one memory... i have 2... and one is sram, and other flash... > > what must i to do? include a the 2nd section in the linker script, i.e. MEMORY { flash : org = 0xXXXXXXXX, len = 0xXXXXXX ram : org = 0x20000000, len = 64k } and use the ">flash" at the end of a linker-section (i.e. .text) to select the memory-section. But you should give some more details. Do you want your user-application to run from flash or RAM? For "run from flash" you can use the approach described above. Keep in mind that that non-zero initial values of variable have to be copied from Flash to RAM and the address-range which holds the variable which are expected to init with zero most be filled with zeros (usualy done in the startup-code). If the user-app should run from RAM (implied by "here i must put my app") it's a little different since you have to copy the code from a "persistent" storage (flash) to the memory where it should be executed (RAM) too. Maybe this is done by a "loader" from your OS, but wíthout further information it's difficult to help. Anyway, search for the GNU binutils-manuals and read the linker-manual (ld), it explains how to place sections at specific LMAs/VMAs.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.