0

我想为 PIC16 使用 Claudiu Chiculitas 微型引导加载程序(我已对其进行了修改以适合我的芯片),但由于该引导加载程序不会移动代码以防止覆盖引导加载程序,因此我必须以某种方式手动确保引导加载程序未被覆盖。我曾尝试像这样使用 --rom 选项:

--rom=default,-0-4,-3f00-3fff

我想要的是:代码内存的前 4 个字中没有代码,因为那是跳转到引导加载程序的位置,而最后 128 个内存字中没有代码,因为那是实际的引导加载程序所在的位置。--rom 就像我使用它一样,什么也没做。我使用的是 HI-TECH PICC STD 编译器(Microchip PICmicro)V9.60PL3,芯片是 pic16f876A。

4

1 回答 1

1

您也可以使用自定义链接器脚本来执行此操作。通常,您的链接描述文件将包含这些行以将重置向量放在第一位,然后将代码(在名为“page”的页面中)放在其后面:

CODEPAGE   NAME=vectors    START=0x0            END=0x29           PROTECTED
CODEPAGE   NAME=page       START=0x2A           END=0x7FFF

对于 Microchip 的 FSDem 板中使用的引导加载程序(占用 0x0-0x800 范围,并希望您的程序在 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
于 2009-10-30T20:18:05.707 回答