最適化が切れてbootloaderのサイズが大きくなってしまったのだから、その分後ろにずらして
やればよい。
デフォルトのbootloaderの大きさは4Kバイト(0x000~0xFFF)と設定されています。
こちらのページに種々のbootloaderの情報が書かれています。
※最初は上記のサイトにあるbootloaderに浮気をしよう、と思いました。
ま、いつか浮気はするわけですけどたぶん。だってモニタもついてるんだもん。
で、bootloaderのコードを見始めました。
どうやら下記の3つが関係しているようです。
- リンカースクリプト(lkr)ファイル
ベクターマップ、プログラムコード、EEPROMなどのメモリ配置の定義。
→メモリマップを変更しようとしているのだから当然、ですよね。 - ブート部プログラム
いわゆるmain()。スイッチの状態で2のローダを実行するか、ユーザプログラムを実行するかを決める。
→ユーザプログラムのアドレスが変わってしまうので変更必要。
- ユーザプログラムのローダ
USB経由でPCホストのプログラムからのコマンドを受け付け、
フラッシュの消去・プログラム・ベリファイを行う。
→フラッシュ領域のどこにユーザプログラムをロードするかの変更が必要。
まぁ、ずらしてやる、という比較的単純な作業なので作業漏れが無いように見ていく、
というのが重要ポイント。
どこをどう変えるのかはまた次回で。
0 件のコメント:
コメントを投稿