2011年8月23日火曜日

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

具体的な変更箇所です。
先回も述べたとおり、bootloaderを配置するメモリの大きさを大きくし、その分それ以降のメモリ配置をずらします。
私の場合は大きくしたメモリ量は0x100分です。
ユーザプログラムの変更も必要です。それはまた次回。

  1. リンカースクリプト BootModified.18f2550_g.lkr
    bootloaderのお尻のアドレスをずらし、bootloaderの格納領域を大きくする。

    元プログラム
    CODEPAGE NAME=BootPage START=0x20  END=0xFFF

    変更後
    CODEPAGE NAME=BootPage START=0x20  END=0x10FF

  2. メインプログラム main.c

    元プログラム
    ベクターの再配置情報
     _asm goto 0x1008 _endasm
     _asm goto 0x1018 _endasm
    ユーザプログラムへのジャンプ部
     goto 0x1000 //If the user is not trying to enter the bootloader, .....
    

    変更後
    ベクターの再配置情報
     _asm goto 0x1108 _endasm
     _asm goto 0x1118 _endasm
    ユーザプログラムへのジャンプ部
     goto 0x1100 //If the user is not trying to enter the bootloader, .....
    

  3. ブートローダ本体 BootPIC18NonJ.c

    元プログラム
    //ユーザプログラムの先頭アドレス
    #define ProgramMemStart  0x001000 //Beginning of application program memory ...
    
    ユーザプログラムを書きこむ際に消去するメモリのブロックサイズ 256バイト単位で設定
    #define StartPageToErase 64 //The 4096 byte section from 0x000-0xFFF ...
    

    変更後
    //ユーザプログラムの先頭アドレス
    #define ProgramMemStart  0x001100 //Beginning of application program memory ...
    
    ユーザプログラムを書きこむ際に消去するメモリのブロックサイズ 0x100ずらすので、値は4増やす。
    #define StartPageToErase 68 //The 4096 byte section from 0x000-0xFFF ...
    


0 件のコメント:

コメントを投稿