2014/07/04

[ble][nrf51]softdevice v7.0.0はどう焼けば良い?

なんか、BLEとかnRF51とかに全然関係なくなってきたが・・・仕方ない。

まず今朝の復習から。
HEXファイルのデータは確認したが、アドレスはツールに任せていた。
INTEL-HEXフォーマットの書式で確認しておこう。

:02 0000 04 0000 FA
:10 0000 00 C0070000D1060000D1000000B1060000 CA

一番先頭の2行。

  • 最初はデータ長(赤文字のバイト長)
  • 次はデータレコードのアドレス
  • 続いてレコードタイプ
  • データ
  • チェックサム

うん、アドレスは0x0000_0000で、最初は0x0000_07C0だ。
でもね、S130のHEXも同じくらいのアドレスなんだよ。
間違っているとは思えない。
それに、もしSPのアドレスが違うのであれば、デバッガを外して起動したとしても動かないはずだ。

じゃあ、SPがどのくらいのアドレスだったらいいんだろう、というところから考えてみようか。
とりあえずRAMは、0x2000_0000から16kB分しかない。
だから、0x2000_0000~0x2000_3FFF、でいいのかな(計算苦手)。
逆立ちしても、0x07C0なんてアドレスにRAMはいない。

 

うーーーーーん、まだわからん!
SPに実はオフセットレジスタがあって、その値を加算したアドレスにアクセスする、とかいうシナリオも考えたけど、そういう記述は見つけられていない。
あるのはせいぜい、アプリ用とシステム用で2セット持てる、というくらいだ。

VectorTableの先頭値を、あんなRAMでもない値にしておく理由が思い当たらないのだ。
なんか、気付いてしまえば大したことがないことだった、みたいなところにいるんじゃないかという気もする。

0 件のコメント:

コメントを投稿

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