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 回答