完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用Qboot时,用ymodem_ota下载固件,重启提示: 然后定位到strcmp((const char *)(fw_info->type), "RBL")出错; Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 发现RBL少了个R,用winhex查看了源文件,文件上有这个RBL; |
|
相关推荐
3个回答
|
|
问题解决
定位到ymodem_ota.c中ymodem_on_data函数中的数据都是正常的,写到MCU flash上时就不正常,初步考虑是字节对齐的问题,在该函数中临时申请一定内存做字节对齐,就buf拷贝到该段内存中,再基于该段内存做写MCU flash 操作,就没这个问题了; |
|
|
|
|
|
|
|
源buf是rt_malloc申请的133字节,到该函数的buf时,偏移了3个字节,*code = ctx->on_data(ctx, ctx->buf + 3, data_sz);
也就是没有对齐了 而MCU flash确认需要4字节对齐 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-5-5 16:28 , Processed in 1.045892 second(s), Total 126, Slave 109 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233 工商网监 粤ICP备 14022951 号