改良版ASSERTマクロ
投稿:2016-04-03
以前作ったASSERTマクロは、svc経由でワザと無茶なアドレスに飛んでハードフォルトを引き起こしてデバッガを止めていました。
CPU命令にデバッガ用命令がちゃんとあるんですね。
今時のマイコンは素晴らしい。
よく使うヘッダファイルに入れて置きます。
#ifdef DEBUG #define KSRK_ASSERT(eval) if (!(eval)) __asm ("bkpt #0\n") #else #define KSRK_ASSERT(eval) (void)(eval) #endif
KSRK_ASSERT(pTable); // pTableにアドレスが入っているはず
UM10360(LPC17xx User manual)ページ715に便利な命令がありました。
メーカーのページ(LPCマイコン情報:LPC1700 Cortex-M3)をどうぞ。
教訓:マニュアルを頭からしっぽまで良く読みましょう。
メーカーのページ(LPCマイコン情報:LPC1700 Cortex-M3)をどうぞ。
教訓:マニュアルを頭からしっぽまで良く読みましょう。