2014/07/06

[ble][nrf51]gdbデバッグの設定がよくわからん

よくわからんシリーズだ。

nRF51822ドキュメントの中にGDB + CDTでのデバッグ方法が載っているのでそのままやっていたのだが、mainに行く前にHardFaultで死んでしまう。
SoftDevice v6.0.0のときは動いていたので、いろいろさまよっていたのだが、どうもGDBの設定に関係がありそうだ、ということがわかったのが昨日のこと。

よくわからないけど、こういう設定にしたらmainで止まってくれるようになった。

image

変更したのは、Runtime Optionsだ。
前は、Set breakpoint atにmainを設定してたのだけど、それを外してSet program counter atを設定するようにした。

このアドレスは何かというと、SoftDevice v7.0.0のHEXにあった0x0000_0004~7の値だ。
Cortex-M0とかは、起動時に最初の4byteをSP、次の4byteをPCとして設定するので、じゃあPCを設定したらそこに止まってくれるかな?と期待して設定したというわけだ。

実際には止まらず、なぜかmainで止まるようになった。
正直なところ、さっぱりわからない。。。
このチェックを外して、tbreak mainとか直書きしたけど、それもだめだった。
アドレスを0にしたら、それはそれでダメだった。

なので「この設定値以外でも動くかもしれないけど、とりあえずmainで止まった」という状況だ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。