Boot file and linker STR91x

fabtor wrote on Monday, September 11, 2006:

I need boot (*.s) and linker file (*.ld) for STR91x, using with GCC. I try with the official file supported by ST, but seem that it doesn’t work.
In alternative can i convert these used by IAR in the WebServerDemo for STR91x?
Please help me.I need these file to use in RIDE IDE to convert the IAR webserver demo to GCC.


rtel wrote on Monday, September 11, 2006:

The standard file will definitely not work.  Your best bet is to take one of the exiting ARM7 boot files and convert that - nearly all of it will be the same.

Things you must ensure are:

1) main() is called from Supervisor mode.
2) IRQ and Supervisor stacks are set up as a minimum.  Other stacks need to be setup as used by your application.
3) The IRQ interrupt is setup correctly.

Point 3 is where the ARM7 and ARM9 ports differ.  The ARM7 port is setup to jump directly to the vectored address, whereas the ARM9 port is setup to jump to a routine that:

1) Saves the context.
2) Reads the vector address from the interrupt controller.
3) Jumps to the interrupt (which may cause a context switch).
4) Restores the context of whichever task should then be running.

Either technique can be used on either processor (ARM7 or 9), but the portmacro.h file must match the technique used.