代码之家  ›  专栏  ›  技术社区  ›  c0m4

如何指定PIC代码的地址范围?

  •  0
  • c0m4  · 技术社区  · 15 年前

    我想使用Claudiu Chiculitas的微型引导加载程序pic16(我已经修改它以适合我的芯片),但由于引导加载程序不移动代码以防止覆盖引导加载程序,我必须手动确保引导加载程序不会被覆盖。我试过使用这样的--rom选项:

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

    我想要的是:在代码内存的前4个字中没有代码,因为这是跳转到引导加载程序的地方,在内存的最后128个字中没有代码,因为这是实际引导加载程序的地方。--就像我用它一样,它什么也不做。我使用高科技的PICC标准编译器(MicrochipPicmicro)v9.60pl3,芯片是PIC16F876A。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Wim    15 年前

    您也可以使用自定义链接器脚本来执行此操作。通常,链接器脚本将包含这些行,以将重置向量放在第一位,代码(在名为“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
    
    推荐文章