0

我正在为 PIC24FJ128GC006 制作一个 USB 引导加载程序,我将为引导加载程序和应用程序代码映射部分闪存。我将 Microchip MLA v2015_08 USB 设备引导加载程序中的链接描述文件添加到我的 PIC24FJ 代码文件中。
在链接器文件中,__BOOTLOADER必须定义 才能访问0x400地址区域。

    #ifdef __BOOTLOADER   
       program (xr)   : ORIGIN = 0x400,         LENGTH = 0x35BE
    #else
       program (xr)   : ORIGIN = 0x4002,         LENGTH = 0x117F4
    #endif

在我的引导加载程序代码的 main.c 中,我已经有了#define __BOOTLOADER,但是当我使用 ICD3 将引导加载程序代码编程到 PIC 并使用 MPLAB 窗口工具栏的 PIC Memory Views 检查程序存储器时,数据被写入0x4002地址和不在0x400.
可能是什么问题?

4

1 回答 1

0

好的。我已经解决了我上面的问题。您应该在链接器文件中写入#define __BOOTLOADER,而不是在main.c 中。然而,另一个问题又出现了。在我的代码文件仪表板中,它表明在定义 __BOOTLOADER 后我已经使用了 97% 的程序内存。所以我的问题是,我可以删除链接器文件中的一些代码以减少使用的程序内存吗?如果是,我怎么知道要在向量表中删除什么?

于 2020-05-28T10:25:32.393 回答