ROMRAM .. kind of

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

ROMRAM .. kind of

Stanislav Meduna
Hi,

I want to be able to update the RedBoot from RedBoot. So
I need to copy a short code from RedBoot away into RAM,
disable interrupts and run it to flash the new RedBoot,
then do a verify and reboot to the new one.

That code has to be linked with offsets in RAM, but needs
to be stored in flash.

Unfortunately I am not really a guru in GNU ld and its scripts.
Is there any example on how to link a code for one address
and direct the section somewhere else in the final image?

I've looked up some ROMRAM setups but they look such that
the code up to the RAM copy is position independent and initially
simply runs from an 'incorrect' address, which does not
really help me much.

In the case it matters I need to do this for a Cortex-M3.

Maybe my flash code can be made position independent too
and I can also think of some script magic to assemble the
flash image, but I would of course prefer to do this in
the ld script way if possible.

Thanks
--
                                      Stano
Reply | Threaded
Open this post in threaded view
|

Re: [ECOS] Re: ROMRAM .. kind of

Stanislav Meduna
On 22.02.2012 06:33, Elad Yosef wrote:

> You can look at the ecos tables.
> The Tables macros assigned section attribute and the linker script
> keeps them all in the section.

I know how to direct code or data into a section. I don't know
how to link it for the address somewhere else, such that
I compile a code for a section starting at e.g. 0x20000000,
but store it somewhere in .rodata or something.

But thanks for the pointer anyway, it gave me a hint what to google
for in the linker documentation ;) Looks that the AT could be what
I am searching for:

http://www.linuxselfhelp.com/gnu/ld/html_chapter/ld_3.html#SEC21

contains an example of exactly what I want.


Regards
--
                                   Stano