完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好!我很困惑!为了在我的设备上确定引导加载程序版本,我希望有一个应用程序可以访问的常量字符串,该字符串位于引导加载程序的代码中。这听起来非常简单。在给定地址定义常数:但是地址属性被忽略,常数字符串可以在:.rodata 0x9fc01938 0x128 296 Read-only常量中找到,这里不是我想要的。我做错了什么?我在我的应用程序中使用相同的模式来存储所有持久数据,所有的工作都像一个魅力。但不在引导加载程序中。tiA,Nick
|
|
相关推荐
6个回答
|
|
我想您想在引导加载程序的固定地址上设置一个数组(在bootrom中)。然后在应用程序中设置一个指针来访问字符串。在引导加载程序中,如下所示:rom main():appBLVersionStr:
|
|
|
|
谢谢戴夫!空间(PROG)几乎是解决方案。经过1小时的尝试和失败,我发现了解决方案:主要问题是,我必须使用选项-s(优化大小)来编译引导加载程序,该选项可以删除所有未引用的内容。这就是版本字符串。所以我必须放置一些代码来访问AppBraveNoSTR。但这涉及到另一个技巧:优化器会将其简化为const表达式并再次删除版本字符串。这里有一个有趣的解决方案:volatile const char_.((space(prog),address(APP_BLVersionStrAddr))appBLVersionStr[]="BLApp V1.0";“。哈哈哈!而对版本字符串的访问实际上必须对程序流产生影响,因此优化器不会再次抛出它。如果(AppBrimoNo.STR〔0〕!=“B”返回,做的伎俩。也许(我敢打赌)有一个更优雅的解决方案。但是现在,它是有效的。边注:如果将持久数据存储在NVM中,请确保将其声明为易失性const。或者优化器可能会产生不需要的结果。我之前就学会了(不要问!)Nick
|
|
|
|
我没有想到,使用DEE图书馆,但…这可能是有道理的
|
|
|
|
什么是“DEE图书馆”?对不起,我没有线索。- Nick
|
|
|
|
数据EEPROM仿真库等:
|
|
|
|
你好!我也像你一样解决了它,但是还有另一个解决方案,使用XP32 V1.40以来的新区域PrimaMa。在您的情况下:使用((保持)”属性,“易失性”关键字可以被丢弃。
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
777浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
676浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:22 , Processed in 1.244817 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号