This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Instruction Access Violation for forcing to Process Thread mode on Cortex M3

Hey guys,

I am trying to force a cortex m3 into thread mode using a process stack pointer. However at the "BX LR" line, it goes to FaultISR.

Following the "Diagnosing Software Faults in Stellaris® Microcontrollers" document, I checked the Fault Status Registers and found it is an instruction access violation. While in the FaultISR, I checked the PC that was saved to the stack and it was 0x00000000. I checked the PC saved onto the process stack and it had a value which was verified to be an actual function. My thumb bit was set and at the "BX LR" command my process stack pointer pointed to the proces's r0.

Register Value:

PSP - 0x200103e0

LR - 0xFFFFFFFD

Memory:

0x200103e0      F0000000(r0) 11111111(r1) 22222222(r2) 33333333(r3)
0x200103f0       12121212(r4) 13131313(lr) 000031FD(pc) 01000000 (xspr)