完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好。在我的项目中,我使用EZBL(简单Bootloader V2.04)进行应用程序更新。在文档文件中说明EZBL库还实现了EEPROM仿真机制。我已经尝试过文档中的例子,它工作得很好,但是当更多的参数被添加到结构中时,只有第一个参数被写入Flash。下面是我使用的代码:在执行EZBLLWORKELDROM ObjutoScript之后,仅在Flash中保存了参数RealDestBulink,另一个值是0xFFFF。此外,在EZBL文档中,EEPROM仿真模块可以处理具有多个参数的结构。您知道为什么会发生这种情况吗?
以上来自于百度翻译 以下为原文 Hi Everyone. In my project I'm using the EZBL (Easy bootloader v2.04) for application update. In documentation files is stated that ezbl library has also the EEPROM emulation mechanism implemented. I've tried the example from documentation and it works fine, but when more parameters are added to the structure, only the first one is written in FLASH. Here is the code I'm using: #include #include "ezbl_integration/ezbl.h" EZBL_AllocFlashHole(emuEEData, 3072, 0x800, -1); struct { unsigned int ledsToBlink; unsigned int test; } eeVars; int main(void) { EZBL_ReadROMObj(&eeVars, EZBL_FlashHoleAddr(emuEEData)); eeVars.ledsToBlink=1; eeVars.test=0; EZBL_WriteROMObj(EZBL_FlashHoleAddr(emuEEData), &eeVars); while(1) { Idle(); } } After the execution of EZBL_WriteROMObj funciton, only the parameter ledsToBlink is saved in FLASH, the other value is 0xFFFF. Also, in EZBL docs is stated that EEPROM emulation module can handle structures with multiple parameters. Do you have any idea why is this happening? |
|
相关推荐
1个回答
|
|
发现导致这个问题的bug。
以上来自于百度翻译 以下为原文 Found the bug which caused this issue. Replace in ezbl.h this: #define EZBL_WriteROMObj(destPgmAddr, srcRAMObjPtr) { EZBL_NVMKey = 0x03DF; if(__builtin_types_compatible_p(typeof (srcRAMObjPtr), void*)) /* regular pointer case */ EZBL_ModifyROM((destPgmAddr), (srcRAMObjPtr), sizeof(*srcRAMObjPtr)); else /* array case */ EZBL_ModifyROM((destPgmAddr), (srcRAMObjPtr), sizeof(srcRAMObjPtr)); } to this: #define EZBL_WriteROMObj(destPgmAddr, srcRAMObjPtr) { EZBL_NVMKey = 0x03DF; if(__builtin_types_compatible_p(typeof (srcRAMObjPtr), void*)) /* regular pointer case */ EZBL_ModifyROM((destPgmAddr), (srcRAMObjPtr), sizeof(srcRAMObjPtr)); else /* array case */ EZBL_ModifyROM((destPgmAddr), (srcRAMObjPtr), sizeof(srcRAMObjPtr)); } |
|
|
|
只有小组成员才能发言,加入小组>>
5104 浏览 9 评论
1965 浏览 8 评论
1904 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3134 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2202 浏览 5 评论
675浏览 1评论
551浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
426浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
573浏览 0评论
472浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-20 13:27 , Processed in 1.162758 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号