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.