よくわからんシリーズだ。
nRF51822ドキュメントの中にGDB + CDTでのデバッグ方法が載っているのでそのままやっていたのだが、mainに行く前にHardFaultで死んでしまう。
SoftDevice v6.0.0のときは動いていたので、いろいろさまよっていたのだが、どうもGDBの設定に関係がありそうだ、ということがわかったのが昨日のこと。
よくわからないけど、こういう設定にしたらmainで止まってくれるようになった。
変更したのは、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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。