无法为PIC24FJ128GC006的链接器脚本定义__BOOTLOADER。

问题描述 投票:0回答:1

我正在为PIC24FJ128GC006制作一个USB Bootloader,我要为Bootloader和Application代码映射部分闪存.我将Microchip MLA v2015_08 usb器件bootloader的linker脚本添加到我的PIC24FJ代码文件中。在链接器文件中, __BOOTLOADER 必须定义,才能访问 0x400 地址区域。

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

在我的bootloader代码的main.c中,我已经把它写成了 #define __BOOTLOADER但当我用ICD3对PIC编程引导程序代码,并使用MPLAB窗口工具栏的PIC内存视图检查程序内存时,数据被写到了 0x4002 地址而不是在 0x400. 请问问题出在哪里?

bootloader linker-scripts pic24
1个回答
0
投票

好了,我已经解决了上面的问题。你应该在链接器文件中写#define __BOOTLOADER,而不是在main.c中。 不过又出现了一个问题。在我的代码文件dashboard中,那里显示我在定义了__BOOTLOADER之后,已经使用了97%的程序内存。所以我的问题是,我是否可以删除 linker 文件中的一些代码来减少使用的程序内存?如果可以,我怎么知道在向量表中要删除什么?

© www.soinside.com 2019 - 2024. All rights reserved.