メモ:LPCXpressoでハードフォールトしたとき

LPCXpressoでハードフォールトが発生すると、HardFault_Handler()に飛ぶ。

f:id:licheng:20200929215733p:plain

どこでフォールトが発生したかは、「Registers」で「faults」のところを見ると分かる。「Fault PC」にフォールト発生箇所のソースと関数名が示される。

エラー要因は「Faults」に示される。下の例の「ImpreciseErr」は「不正確なデータアクセスエラー」。このときはヌルポインタへのアクセスが原因だった。また、「Fault status registers」にはフォールトの状態を示すレジスタの値が、「Stacked resisters」には例外発生時にスタックに退避されたレジスタの値が示される。

f:id:licheng:20200929220634p:plain