I'm using a LPC2129, with Realview MDK-ARM 3.11 and RealView RL-ARM 3.10
I'm trying to run an application loaded by a user bootloader. So I have a bootloader code in 0x0000 0000 who uses a USB connection to load an application code in 0x0000 4000. The program runs fine. The problem is when I jump to the application code, when I have to remmap the interrupt vectors.
I've tried using REMAP RAM_MODE for Startup.s file in the application, but it seems that the interrupts still go to the Flash Vectors.
Besides, the SWI handler is configured by the OS (RL-ARM) and the Dabt handler by the Real Time Agent
I appreciate any help or useful link
Finally it works!!! This line of code in the Startup.s is commented out:
LDR PC, IRQ_Addr
And this one is used instead:
LDR PC, [PC, #-0x0FF0] ; Vector from VicVectAddr
Changing that the code run OK
I didn't need to copy the RAM vectors in my code. It seems that the compiler assumes it as an initializated variable and copy its value in execution time, before going to main(). I've already converted the HEX code to binary, programmed using my user USB bootloader and jump to it...It's working fine.
Thanks Christian for the help.
While shareing Your happiness about the working software I looked up what scatter files where and recognised I was wrong. Just for clarification: Are they doing the same as linker control files?