nRF51 SDK v6.1.0を使っている。
nrf_assert.hで、ASSERTマクロが定義されている(assertじゃなくて)のだけれど、判定が偽の時にassert_nrf_callback()を呼び出すようになっている。
assert_nrf_callback()はユーザアプリ、つまり私とかが定義せんといかん。
これが有効なのは、DEBUG_NRFかDEBUG_NRF_USERが定義されているとき。
前者はMakefile.commonが、後者はアプリのMakefileが定義する。
makeを引数無しで実行すると、という話を前回したのがこれで、make debugのときにはDEBUG_NRFが定義されるようになっている。
じゃあ、make releaseとしたときにはassert_nrf_callback()が不要、と思ったのだけど、そうではなかった。
softdevice_assertion_handler()が使っているのだ。
これは#ifdefとかじゃないので、softdevice_handler.cをリンクするならば定義が必要になってくる。
app_error_handler()も同じようなものなんだから、こっちも定義してしまえばいいんだけど、なんかちょっと抵抗があるのよねぇ。
なんでだろう・・・。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。