0

XC8 (1.37) でベアボーン プログラム テンプレートを作成しました。これを使用して、18F ファミリ用の新しい GLCD 機能を開発およびテストします。プログラミングは PICkit3 を介して行われます。コードを何度もすばやく再プログラムする必要があるため、プログラミングが可能な限り高速であることが非常に重要です。通常、コード サイズは約 2K で、プログラムに 10 秒もかかりません。

const char font8[] = {....

現在、わずか 400 バイトが追加されただけで、コンパイラはテーブルを ROM の最後に配置し、64K メモリのプログラミングには 1 分以上かかります。
これを回避する方法はありますか?

MPLABX オプションでメモリ範囲を手動で制限しようとしましたが、これは煩わしく、少し安全ではありません (コードの一部が切り詰められることがあります)。

4

1 に答える 1

0

しばらく前に、エミッション テスト用のコードを作成する必要がありました。そこでは、RAM の両端間でデータをコピーする必要がありました。そのためには、正確なメモリ アドレスを指定する必要がありました。C 拡張 __at() 構造を使用することもできます。 http://ww1.microchip.com/downloads/en/DeviceDoc/50002053F.pdf#page=27

int scanMode __at(0x200);
const char keys[] __at(123) = { ’r’, ’s’, ’u’, ’d’};
int modify(int x) __at(0x1000) {
    return x * 2 + 3;
}
于 2016-08-06T15:53:44.407 に答える