なんか、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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。