|
The problem was found. Since the IRQ vector lies in RAM a NULL pointer to a structure that has a field at offset 0x18 that made a statement like this p->f1-- caused the instrution at 0x18 to be e5FFFF1F instead of e5FFFF20, so when you look at the code in the debugger you see what is supposed to be the instruction at 0x18 but if you go and look directly at the memory you can see it was modified. The e5FFFF20 instruction is ldr pc,[pc,-F20] which generate the address of the AIC_IVR (0xFFFFF100) the e5FFFF1F instruction is ldr pc,[pc,-F1F] which generate the address 0xFFFFF101 and hence cause the data abort. Since this NULL pointer changed some other instructions the SW did not pass in any of the abort handlers. Thanks Ophir
|