Execute code on a specific memory location

mmsanchez wrote on Tuesday, April 16, 2013:

Hello… I am working with a Zynq board, with an AMP configuration (Linux on CPU0 and FreeRTOS on CPU1).

So far, I am able to write (trough Linux) a binary file to a specific memory location, but what I really need to do is to execute the binary file from FreeRTOS.

I don’ know if I should create a task for reading the written data, or if its possible to jump to this memory location, execute the written script and return to my task.

Any Ideas?

Thank you

rtel wrote on Tuesday, April 16, 2013:

FreeRTOS applications are statically linked.  There is no way of dynamically linking to an external executable.  If the external executable was position independent then you could manually jump to that address, but would also have to manage the jump back.

Regards.

mmsanchez wrote on Tuesday, April 16, 2013:

Hello Richard…
Thank you for answering so quickly…
Just for being clear…. If I create a position independent executable… it would be possible to jump to the memory location where It is written and execute it?…
I know I have to do something to jump back…

Thank you! … I have to start this from scratch and I am a bit lost! :smiley:

Monica

rtel wrote on Tuesday, April 16, 2013:

I don’t see why not, but I have never really tried it outside of jumping to a bootloader or copying code to RAM and executing it from RAM.

Regards.

mmsanchez wrote on Wednesday, May 01, 2013:

Hi… I finally got it done… using linker script turned out easier. Thanks!