I have sporadic HardFaultVector errors - sometimes it takes 3 seconds to get it, sometimes 30 minutes. I know it's HardFaultVector because I have explicit handler defined.
I also know that INVSTATE is 1.
ARM tells us
Code: Select all
Invalid state UsageFault:
0 = no invalid state UsageFault
1 = the processor has attempted to execute an instruction that makes illegal use of the EPSR.
When this bit is set to 1, the PC value stacked for the exception return points to the instruction that attempted the illegal use of the EPSR.
This bit is not set to 1 if an undefined instruction uses the EPSR.and that's where I am lost.
Code: Select all
Execution Program Status Register
The EPSR contains the Thumb state bit, and the execution state bits for either the:
If-Then (IT) instruction
Interruptible-Continuable Instruction (ICI) field for an interrupted load multiple or store multiple instruction.
See the register summary in Table 2.2 for the EPSR attributes. The bit assignments are:
Table 2.6. EPSR bit assignmentswat?
So I wonder what this diagnostics is supposed to tell me.


