PIC24固件引导加载程序无法启动加载的程序

时间:2010-12-09 12:35:05

标签: hid bootloader microchip

我知道这可能不是这个问题的最佳位置,但我尝试了Microchip论坛,但还没有得到回应。我正在努力让一个HID引导程序项目在我使用PIC24FJ64GB002构建的原型板上工作。我修改了示例HID Bootloader项目以使用我的电路板,我修改了示例HID Mouse项目以便与我的电路板一起工作。当我使用引导加载程序代码对器件进行编程时,它运行正常,Microchip Bootloader Windows程序找到该器件并显示“Device attached。”。但是,当我尝试将鼠标程序的hex文件加载到我的设备上时,它表示它已成功完成但鼠标程序永远不会运行。我不确定我是否使用正确的链接描述文件。有没有人这样做,知道我应该为引导加载程序项目和可加载项目使用哪些链接器脚本?

1 个答案:

答案 0 :(得分:2)

我能够使用Microchip HID引导加载程序和Microchip HID鼠标应用程序使用面包板PIC24FJ64GB002。

要做的关键事情是使用引导加载程序和应用程序的正确链接描述文件。

Bootloader链接器更改:
MEMORY
{
...
program (xr) : ORIGIN = 0x400, LENGTH = 0x1000
app_ivt : ORIGIN = 0x1400, LENGTH = 0xC0
...
}
__CODE_BASE = 0x400;

App链接器更改:
MEMORY
{
...
app_ivt : ORIGIN = 0x1400, LENGTH = 0xC0
program (xr) : ORIGIN = 0x14C0, LENGTH = 0x96E8
...
}
__CODE_BASE = 0x200;

通过引导加载程序加载应用程序后,必须重置设备。 引导加载程序中main()开头的以下代码是导致引导加载程序跳转到应用程序的原因。

mInitSwitch2();
if((sw2==1) && ((RCON & 0x83) != 0))
{
    __asm__("goto 0x1400");
}