2011年8月23日火曜日

Microchip PIC C18コンパイラLiteEditionでHIDBootloaderをコンパイルする【その2】

ま、結論から行きます。
最適化が切れてbootloaderのサイズが大きくなってしまったのだから、その分後ろにずらして
やればよい。
デフォルトのbootloaderの大きさは4Kバイト(0x000~0xFFF)と設定されています。
こちらのページに種々のbootloaderの情報が書かれています。

※最初は上記のサイトにあるbootloaderに浮気をしよう、と思いました。
ま、いつか浮気はするわけですけどたぶん。だってモニタもついてるんだもん。

で、bootloaderのコードを見始めました。

どうやら下記の3つが関係しているようです。
  1. リンカースクリプト(lkr)ファイル
    ベクターマップ、プログラムコード、EEPROMなどのメモリ配置の定義。
    →メモリマップを変更しようとしているのだから当然、ですよね。
  2. ブート部プログラム
    いわゆるmain()。スイッチの状態で2のローダを実行するか、ユーザプログラムを実行するかを決める。
    →ユーザプログラムのアドレスが変わってしまうので変更必要。
  3. ユーザプログラムのローダ
    USB経由でPCホストのプログラムからのコマンドを受け付け、
    フラッシュの消去・プログラム・ベリファイを行う。
    →フラッシュ領域のどこにユーザプログラムをロードするかの変更が必要。
まぁ、ずらしてやる、という比較的単純な作業なので作業漏れが無いように見ていく、
というのが重要ポイント。

どこをどう変えるのかはまた次回で。


0 件のコメント:

コメントを投稿