完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我正在使用Picrochip的Bootloader代码,用于PIC32 MZ2048 EFM100。我能很好地运行基本代码。当我试图添加一些代码来读取和写入数据到程序Flash时,问题就出现了。我希望能够在固件更新过程中保留一些校准常数,下面是我的一般方案。带有(*)的步骤涉及我添加的代码,其他一切都来自基本的微芯片示例。-Bootloader程序start-*检查程序闪存结束时的触发位,以进入更新模式或跳转到主应用程序-*在程序闪存结束时保存两个数据结构。h到属性((持久))变量,这些变量将通过使用PC软件通过USB通过软重置擦除/更新/验证固件而幸存,这些PC软件以前保存的软重置*写入数据结构返回到程序闪存-跳转到主应用程序。以下是我来自app.c:LOAD_BOOTLOADER_TRIPWIRE_ADDR,CALI的源代码BR._DATA_ADDR和HARDWARE_DATA_ADDR都在9d07FC00和9d07FF之间,就在程序flash的末尾。BAREMETAL_NVM_writeData来自以下代码:奇怪的是,如果我在调试模式下运行上面的代码,一切正常。但是,当我在生产模式中编程时,程序挂在“擦除程序验证”序列的“程序”步骤上。只有当我注释掉这些行时,运行在生产模式下才能工作:在app.c中。这让我觉得从闪存读取数据有问题。另一个奇怪的是,当我注释掉定制的NVM编写代码时,程序抛出“加载或存储总线错误”,在两个调试器中都抛出“加载或存储总线错误”。D生产模式。为什么包括这个代码使我的程序工作?
|
|
相关推荐
2个回答
|
|
你好,你读闪存做的是正确的:我建议你检查以下内容:-你正在使用的指针地址,使用你想读的地址做一个简单的测试。-检查你正在使用的优化级别,有时候在de之间切换时会出现问题错误模式和发布模式。试着降低优化级别,检查问题是否仍然存在。以防万一,确保链接器脚本中的所有内容都正常。
|
|
|
|
MimcPy电话试图实现什么?不仅“calData”被声明为在程序闪存中,所以写入它不会做太多事情,您还传递了与源和目的地相同的地址。在对BAREMETAL_NVM_writeData的调用中,源地址和目的地地址是相同的。编写128位数据。您将CALDATA和HWDATA的地址转换为UTIT32×T*指针。你绝对确定数据是否正确对齐?既然你正在使用四字操作,你确定你不是在Flash结束后阅读吗?如果您得到异常,请使用异常处理程序找出出错的原因和位置。
|
|
|
|
只有小组成员才能发言,加入小组>>
5234 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3200 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
771浏览 1评论
659浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
588浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
669浏览 0评论
571浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 20:11 , Processed in 1.232004 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号