完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我有一个PIC32 USB启动器套件II和PIC32MX795F512L,我有启动器MSD演示运行演示应用程序成功。我的目标处理器是PIC32MX570F512L,我有PIC32MX1/2/5启动器套件开发。我的问题是,在我的移植工作之后,引导加载程序尝试跳转到主应用程序。它成功地跳转到应用程序启动部分。我在执行内存窗口中设置一个断点,在启动地址上运行到在执行的第4条指令时,它抛出通用异常。我的通用异常处理程序说该异常是加载/存储总线错误。我一直在想这个问题,阅读我能找到的每个论坛帖子,并且从头开始几次,但是在这个问题上没有成功。AN1388Bootloader是为USB大容量存储而设置的,并且该功能看起来正常工作。PIC32 MX570的启动闪光灯是3KB的PIC32 MX795的12KB,所以一些东西被移动。相关的链接器信息如下:在我将我的开发板粉碎成微小的硅位之前,请帮助我:Bootloader Link Script:Bootloader.h地址:Application Link Script:异常发生的位置在0x1D00A690处。DRES0X1DAA690。在那个地址上有一条有效的指令,它的几个内存地址超过了指令本身,仍然在_main_entry部分中。应用程序非常简单,因为它可以在没有中断的情况下获得,并且有一个循环来切换一些LED:使用默认链接器的应用程序脚本在独立运行时正确运行。
|
|
相关推荐
7个回答
|
|
我并不是在建议一个解决方案,而是为了帮助您在心理方面清理潜在的问题,从链接器中完全删除kseg0_boot_mem部分。我已经在我***标应用程序做了这个,我没有看到任何追索权-因为它是一个“虚拟”部分。确保你的BL分支直接指向目标应用程序的ReSeTeAdDR。从这里开始,我们可以深入研究你的问题。
|
|
|
|
从2个链接器脚本中删除KSG0BY BooToMeMm部分。到app的跳转分支到0x1D00A000,它是_RESET_ADDR的物理地址,虚拟地址0x9D00A000;更详细的信息-我使用的是MPLAB X V3.20、XC32 V1.40和ICD3
|
|
|
|
看起来Bootloader和应用程序共享相同的调试内存。是否为调试而建立它们?或者只是为调试而建的引导加载程序?
|
|
|
|
在跳转到应用程序之前,请确保杀死Bootloader所使用的所有中断,如果使用DMA,则停止DMA。
|
|
|
|
不能使用CPU的物理地址,所有的内存访问都是通过固定映射转换方案进行的。外围设备不使用地址映射,这就是为什么它们需要物理地址。而且,分支指令的范围是+-128KB,所以您的目的地无论如何都是不可达的。
|
|
|
|
不能使用CPU的物理地址,所有的内存访问都是通过固定映射转换方案进行的。外围设备不使用地址映射,这就是为什么它们需要物理地址。而且,分支指令的范围是+-128KB,所以无论如何您的目的地都是不可到达的。引导加载程序跳转是引导加载程序中的标准代码,并且它成功地跳转到_startup。跳转代码不使用0x1D000 A000。我描述了这个地址,因为这是在调试器的执行内存汇编代码窗口中显示出来的。它没有显示虚拟寻址。AN1388的所有示例链接器脚本都具有共享相同调试器内存空间的引导加载程序和应用程序。我工作的USB SKII PIC32MX795F512L示例也是如此。附注——我已经调试了这两种方式——通过加载引导加载程序,并使用USB MSD加载应用程序固件,以及设置引导加载程序项目以将应用程序加载到MPLAB(项目加载选项)中,其中c.创建包含引导加载程序和应用程序的一个十六进制文件,并将它们编程到内存中,并在运行引导加载程序时跳转到已经加载的应用程序。该应用程序从SO启动(Oracle ReaTyAdDR 0x9D000 A000)跳到其故障所在的μMeNeAccess。我不认为打扰会成为问题,因为这肯定会在这些地点之间引发冲突。我欣赏所有的想法,并期待更多。
|
|
|
|
发现问题并解决。当你发现你的错误时,你总是觉得愚蠢,你应该早一点抓住它。我的问题是,在查看了链接器脚本的内存部分中定义的配置寄存器位置之后,我认为脚本足够智能,可以知道配置寄存器在哪里:但我猜不是。他们的位置在这里是第二次确定:我错过了,很显然,这是我所有问题的原因。谢谢大家的意见和投入。
|
|
|
|
只有小组成员才能发言,加入小组>>
5237 浏览 9 评论
2027 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3202 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
772浏览 1评论
662浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
590浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
672浏览 0评论
572浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 23:31 , Processed in 1.218212 second(s), Total 89, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号