完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我的Bootloader显示了一个Struts行为(至少对我来说)。我有一个引导加载程序和一个应用程序。当我使用统一的十六进制,由MPLABX创建时,一切都运行良好。引导加载程序启动、检查其条件并启动应用程序(基本上通过调用_RESET_ADDR中的地址)。在下一次重新启动时,将触发引导加载程序加载新的应用程序十六进制(不是统一十六进制,而是单个应用程序十六进制)并对闪存进行编程。它试图启动应用程序,但失败并进入重新启动循环。请注意,应用程序本身没有改变!这就是奇怪的部分:为什么应用程序在带有统一十六进制时启动时没有问题,而在闪烁“独立十六进制”时没有启动呢?两者应该有相同的内容,不是吗?到目前为止,我实际上是通过将EBASE地址放在KSG00SuffyTyMeM中来实现应用程序的工作。现在我需要理解为什么这样工作。有人能解释一下为什么ebase地址需要位于kseg0_._mem内部吗?我认为KSt00Studio MEM基本上是C程序。我也在这个论坛上看到,eBASE可以从任何地方开始从和谐1.08。在大多数示例中(如在AN1388中),ebase是0x9d000000,而kseg0_._mem在此之后开始。*统一过程做什么?它可能会改变地址而不这样说。*当前配置是否正确(安全使用)?或者这只是巧合吗?我使用的是PIC32 MZ2048 EFM114。引导加载程序本身松散地基于HARMony加载程序,但是完全不同(但是它使用NVM.c来编程应用程序)。我确信十六进制的字节被正确地写到闪存中。这是我的bootloader.ld(引导加载程序被放置在引导内存中)和(不工作)application.ld:这是可以工作的application.ld(引导加载程序没有改变):
|
|
相关推荐
3个回答
|
|
你需要再往下看。这就是在KSG00SuffyTym MEM的开始放向量表的原因。不一定要这样。如果给kseg0_boot_mem设置适当的大小,并将“>kseg0_._mem”更改为“>kseg0_boot_mem”,则只要向量table.ebase位于4K边界上,就可以在任意位置放置。这是因为EBASE的低12位用零填充。
|
|
|
|
谢谢你的暗示。但是我仍然没有掌握它的诀窍。现在我给kseg0_boot_mem一个长度,并将其放在程序闪存的开头。我把kseg0_._mem放在离它稍远的地方,并将单个异常向量移动到kseg0_boot_mem。ebase是kseg0_boot_mem和reset_vector的开始。指向kseg1_boot_mem。在bootloader项目中,我将0x9D002000设置为应用程序地址,这将是kseg1_boot_mem的开始(对吗?)应用程序仍然无法启动。
|
|
|
|
我看不出分配程序内存的方式有什么明显的错误。但是,如果查看PIC32MZ2048EFM144.ld的默认链接器脚本,您将看到链接器脚本似乎缺少其他区域。默认链接器脚本具有缓存初始化数据和所有配置词的KSK1YBoToMyMy4B0。你能用默认的模板做一个新的吗?一旦您这样做了,您可以简单地将_RESET_ADDR更改为9FC0_0000,并将kseg1_boot_mem的原点更改为9FC0_0000,并且应用程序应该能够在没有引导加载程序的情况下运行。
|
|
|
|
只有小组成员才能发言,加入小组>>
5237 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3201 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
771浏览 1评论
659浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
588浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
670浏览 0评论
571浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 22:26 , Processed in 1.338209 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号