我在XC8(1.37)中编写了一个准确的progran模板,用于开发和测试18F系列的新GLCD功能。编程通过PICkit3完成。由于我需要快速重新编程代码,因此编程尽可能快地编程非常重要。 简而言之,代码大小约为2K,编程时间不到10秒, Everiything很好,直到我必须使用字体表,定义为:
const char font8[] = {....
现在,只需添加400美元的字节,编译器将表放在ROM的末端,64K内存的编程需要1分钟以上。
有什么方法可以避免这种情况吗?
我试图在MPLABX选项中手动限制内存范围,但这很烦人且有些不安全(有时会截断部分代码)。
答案 0 :(得分: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;
}