完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,按照我在这里之前的帖子http://www..hip.com/for./m1006668.aspx.我正在使用PIC32MX795F512L,SD卡引导程序(AN1338)。应用程序将搜索SD卡中的引导加载文件并加载它的内存。我有以下行为:1-我使用IPE工具加载最新版本的引导加载程序(v06),然后从SD卡加载应用程序,然后应用程序加载相同版本的引导加载程序(v06),一切正常。2-我使用IPE工具和t加载旧版本的引导加载程序(v05)。母鸡从SD卡加载应用程序,然后这个应用程序加载Bootloader(V06)的新版本。之后,没有任何工作,BoooDoad根本没有启动(基于LED)我的问题是我如何调试这个?我应该开始寻找重置地址还是比较配置寄存器?我没有改变应用程序的链接器,也没有改变引导程序。任何想法都是值得赞赏的。
|
|
相关推荐
5个回答
|
|
这可能是不正确擦除的结果。如果IPE在加载V05引导加载程序之前进行了大量擦除,那么加载应用程序不需要擦除任何内容,因此它无需擦除即可工作,但是当应用程序加载新的引导加载程序时,除非擦除按预期工作,否则无法工作。V05引导程序的NED HEX文件及其应用程序。检查MPLAB X中的可加载文件。然后您可以在应用程序中设置一个断点,它将加载新的引导加载程序并检查发生了什么。我通常将应用程序作为可加载程序加载到Bootloader中。请注意,您需要“读取设备内容”以查看NVM函数所做的内存更改,例如擦除。还要确保对十六进制文件进行规范化。愚蠢的问题——您在应用程序中使用引导加载器中的函数吗?!
|
|
|
|
嗨,Ruben,我相信我做了所有这些,它看起来对我没问题,我再检查一遍,看看有什么变化。是的,我使用了引导加载程序使用的相同函数:EraseFlash()使用NVMemErasePage()WriteHexRecord2Flash(hexRec)
|
|
|
|
我在AppNote(1388b)中发现了一些有趣的东西,其中他们提到了以下内容:因此我使用REAL ICE加载引导加载程序,并发现它加载的数据分两部分:引导闪存(0x1FC00_0000)和程序闪存(0x1D00_0000)(为其lin中的引导加载程序保留)现在,它为什么在加载相同的版本时工作,而不在加载不同的版本时工作。问题是:当我从App中编写引导程序时,我只在引导程序区域(0x1D00_0000-0x1D00_7000)中写入,并且当我检查引导程序加载的十六进制文件时,我没有发现任何广告。属于引导闪存的衣服,这让我感到困惑?我的问题是:如果Bootloader HEX文件中没有信息,应用程序如何更新引导内存?我错过了什么?
|
|
|
|
引导加载程序十六进制文件应该包含引导Flash内存的十六进制记录,其中应该包含重置向量、引导加载程序的中断向量表和配置字。否则,你的引导加载程序根本不起作用。我猜你的应用程序代码可能没有正确解析HEX文件。在十六进制文件中应该有一些类型的4个记录,它们设置了上面的地址(1fc0),类似于:
|
|
|
|
Yepe,是的。我在看汇编文件
|
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2036 浏览 8 评论
1956 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2264 浏览 5 评论
788浏览 1评论
678浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
608浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 23:21 , Processed in 1.372675 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号