趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
HID Bootloaderはアドレス0x0000~0x0FFFを使用するので、ここを書き込み不可にすればいい。
書き込みを制御するのはここ。
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRTB = OFF // Boot Block Write Protection
#pragma config WRTC = OFF
WRTBをONにすると0x0000~0x07FFを保護
WRT0をONにすると0x0800~0x1FFFを保護
WRT1をONにすると0x2000~0x3FFFを保護
WRTCをONにするとコンフィグ変更不可(保護の解除を禁止)
WRTBとWRTCをONにするのはいいとして、WRT0はどうしたものか。。。
ONにすると、ファームウェア用の領域まで一部保護してしまう。。。。。
こまった。。。
ということで、HID Bootloaderを変更することにした。
ブートローダ領域:0x0000~0x0FFF
ファームウェア領域:0x1000~0x7FFF
↓
ブートローダ領域:0x0000~0x1FFF
ファームウェア領域:0x2000~0x7FFF
こうすることによって、HID BootloaderをC18の制限版でもコンパイルできるようになるし、一石二鳥。
が、開始アドレスが0x1000から0x2000に変わるので、Microchipのフレームワークがそのままでは動かなくなる。仕方ないか。。。。稀にブートローダーが壊れるよりマシか。。。。
書き込みを制御するのはここ。
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRTB = OFF // Boot Block Write Protection
#pragma config WRTC = OFF
WRTBをONにすると0x0000~0x07FFを保護
WRT0をONにすると0x0800~0x1FFFを保護
WRT1をONにすると0x2000~0x3FFFを保護
WRTCをONにするとコンフィグ変更不可(保護の解除を禁止)
WRTBとWRTCをONにするのはいいとして、WRT0はどうしたものか。。。
ONにすると、ファームウェア用の領域まで一部保護してしまう。。。。。
こまった。。。
ということで、HID Bootloaderを変更することにした。
ブートローダ領域:0x0000~0x0FFF
ファームウェア領域:0x1000~0x7FFF
↓
ブートローダ領域:0x0000~0x1FFF
ファームウェア領域:0x2000~0x7FFF
こうすることによって、HID BootloaderをC18の制限版でもコンパイルできるようになるし、一石二鳥。
が、開始アドレスが0x1000から0x2000に変わるので、Microchipのフレームワークがそのままでは動かなくなる。仕方ないか。。。。稀にブートローダーが壊れるよりマシか。。。。
PR
この記事にコメントする