我知道这可能不是这个问题的最佳位置,但我尝试了Microchip论坛,并没有得到答复。我正在尝试使用PIC24FJ64GB002构建原型电路板上的HID引导加载程序项目。我修改了示例HID Bootloader项目以使用我的主板,并修改了示例HID Mouse项目以与我的主板配合使用。使用引导加载程序代码对器件编程时,它运行良好,Microchip Bootloader Windows程序找到该器件并显示“Device attached。”。但是,当我尝试将鼠标程序的十六进制文件加载到我的设备上时,它说它成功完成,但鼠标程序从未运行。我不确定我是否正在使用正确的链接器脚本。有没有人做过这件事,并知道我应该用于bootloader项目和可加载项目的链接器脚本?PIC24固件引导加载程序没有启动加载程序
2
A
回答
2
我能够使用Microchip HID引导加载程序和Microchip HID鼠标应用程序使用面向对象的PIC24FJ64GB002。
要做的关键事情是使用正确的链接器脚本的引导程序和应用程序。
Bootloader的链接变化:
MEMORY
{
...
program (xr) : ORIGIN = 0x400, LENGTH = 0x1000
app_ivt : ORIGIN = 0x1400, LENGTH = 0xC0
...
}
__CODE_BASE = 0x400;
应用程序连接的变化:
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");
}
+0
你可以评论应用程序链接程序filw的`__CODE_BASE`吗? – abhiarora 2017-03-25 08:36:10
相关问题
- 1. Linux启动加载程序
- 2. 引导程序加载图像文件
- 3. 什么是tomcat的引导加载程序,它与java的引导程序加载程序有什么不同?
- 4. JSP没有加载JDBC驱动程序
- 5. GRUB的stage 1引导加载程序如何加载stage 2引导加载程序?
- 6. 加载引导程序的第二阶段并启动它
- 7. 引导加载程序和固件常见用法和固件升级
- 8. RequireJS - 无法加载引导程序
- 9. 引导加载程序同步错误
- 10. 引导程序不加载我NinjectModules
- 11. Hello World引导加载程序
- 12. 引导加载程序问题
- 13. 引导加载程序上的图形
- 14. 引导加载程序堆栈设置
- 15. Zend模块引导程序未加载
- 16. 如何测试引导加载程序
- 17. 在引导程序中加载内核
- 18. Cortex M3的引导加载程序
- 19. 引导加载程序函数调用
- 20. Linux中的引导加载程序
- 21. 大会和引导加载程序
- 22. 固定扇区加载引导程序(LILO,GRUB,定制)
- 23. QSqlDatabase:驱动程序未加载驱动程序未加载
- 24. 引导程序资源没有在单元测试中加载
- 25. 加载程序活动类不启用
- 26. 引导加载程序帮助...为什么USB驱动器即使没有引导签名也能启动?
- 27. 加载程序未加载
- 28. 从另一个加载程序启动加载程序。对还是错?
- 29. Windows 8启动加载程序没有检测到Ubuntu
- 30. 使用OSR驱动程序加载程序加载驱动程序错误
这是你可以在图片模拟器中运行的东西,至少要涵盖你已经使用正确的链接脚本的担忧? – 2010-12-11 15:01:03