STM32を起動すると、ポインタで指されているストラクチャのメモリを割り当てようとしています。STM32でmemsetを呼び出すときのHardfaultの例外
TLxbEvents *LxbEvents
memset((void*)LxbEvents, 0, sizeof(TLxbEvents));
分解に見ると、それは私がSTMCS命令地獄ARMのウェブサイトやGoogle上または他の場所を記述した文書を見つけることができませんでしライン
STMCS r0!,{r2-r3,r12,lr}
に常にクラッシュ... レジスタでその点は
r0 0x2000D694
r2 0x00000000
r3 0x00000000
r12 0x00000000
lr 0x00000000
私は別のルーチンに変更を加えずに呼び出しを移動しようとしましたが、整列をチェックしても大丈夫と思われます。プログラムがその行に走るたびにHardFaultでクラッシュし、いくつかのデバッグ変数によると、それはウォッチドッグリセットによって引き起こされ、私は信じられません...
この行は何をしているのでしょうか?ハードフォールトの原因は何ですか?
あなたはポインタ 'LxbEvents'を持っていますが、それはどこを指していますか? –
'r0'なので、SRAMのどこかに0x2000D694があり、メモリビューアを使って、ゼロがすべてあることがわかります – Aeonos
使用前に宣言してください! – CinCout