我用XC8 (1.37)编写了一个barebone编程模板,用于为18F家族开发和测试新的GLCD函数。编程是通过PICkit3完成的。由于我需要对代码进行多次快速重新编程,因此尽可能快地编程是非常重要的。最重要的是,代码大小约为2K,编程时间不到10秒,一切都很好,除非我必须使用字体表,定义如下:
const char font8[] = {....现在,只增加了$400字节,编译器将表放在ROM的末端,64K内存的编程需要超过1分钟。
有什么方法可以避免这种情况吗?
我试图在MPLABX选项中手动限制内存范围,但这很烦人,而且有点不安全(有时部分代码会被截断)。
发布于 2016-08-06 23:53:44
不久前,我不得不为排放测试编写一些代码,在那里我需要在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;
}https://stackoverflow.com/questions/38796223
复制相似问题