Hello, I am mapping interrupts to RAM (MEMMAP = 2). I want to overwrite some of the contents of 0x40000000 with my own address (namely, 0x40000008, that is the SWI handler). I know what I want: I need to install a branch instruction like
LDR PC, SWI_Handler
But when I look at address 0x0 (just for an example of how it is done in flash), I see the following repeating pattern:
0x0 18F09FE5 0x4 18F09FE5 0x8 18F09FE5 0xC 18F09FE5
I would expect to find there different instructions! What gives?
Note that you need to copy 64 bytes to RAM when remapping vectors. the address handlers are placed in the second half of that region. I guess you are using an operating system like RTX; if so, do note that RTX calls are carried out using SWI calls, so if you remap interrupts before initializing RTX, you must make sure that the image of RTX places its own SWI handler in RAM. it seems that is what you have done.