質問
PIC16にはClaudiu Chiculitasの小さなブートローダーを使用します(チップに合わせて変更しました)が、ブートローダーはブートローダーの上書きを防ぐためにコードを移動しないため、ブートローダーが上書きされないことを手動で確認する必要があります。次のように--romオプションを使用しようとしました:
--rom=default,-0-4,-3f00-3fff
欲しいのは、コードメモリーの最初の4ワードにコードがないことです。これは、ブートローダーへのジャンプがある場所と、実際のブートローダーがある場所にあるため、メモリの最後の128ワードにコードがないためです。 -私が使っているようなROMは何もしません。 HI-TECH PICC STD COMPILER(Microchip PICmicro)V9.60PL3を使用しており、チップはpic16f876Aです。
解決
カスタムリンカースクリプトを使用してこれを行うこともできます。通常、リンカスクリプトにはこれらの行が含まれており、リセットベクトルを最初に配置し、その後ろに(" page"という名前のページ内の)コードを配置します。
CODEPAGE NAME=vectors START=0x0 END=0x29 PROTECTED
CODEPAGE NAME=page START=0x2A END=0x7FFF
マイクロチップ社のFSDemボードで使用されるブートローダー(0x0-0x800の範囲を占有し、プログラムが0x800に独自のベクターを持っていることを想定しています)の場合、これは以下の行に置き換えられます。
CODEPAGE NAME=boot START=0x0 END=0x7FF PROTECTED
CODEPAGE NAME=vectors START=0x800 END=0x0x829 PROTECTED
CODEPAGE NAME=page START=0x82A END=0x7FFF
所属していません StackOverflow