stelfojia
stelfojia
This guy hasn't written anything yet

注册于 1 year ago

回答
0
文章
0
关注者
0

关于字节对齐问题。
首先要说明的就是编译器是多少位,如32位还是64位。
其次要说明变量在该编译器下的字节长度。
否则,无法计算结构体的长度以及对齐规则。

SP指针 有MSP 和PSP。
当跳到APP时,还未开启任务时,SP为MSP。
如果bootloader使用时PSP,则不行。
解决办法是:
在跳之前加
__set_CONTROL(0);
使PSP恢复到MSP即可。

重点是多长时间存一次,读取时间可以接受的最长时间是多少。这个机制,存储的越多,读写越慢。

    本帖最后由 stelfojia 于 2020-4-24 14:04 编辑


看了一篇帖子最后解决了以上的问题。
参考网址:


代码修改如下:
__disable_irq();
HAL_DeInit();
app_addr = 0x8020000;
app_func = (rt_fota_app_func)*(__IO rt_uint32_t *)(app_addr + 4);
__set_MSP(*(__IO rt_uint32_t *)app_addr);
__set_CONTROL(0);
app_func();



20200424135311.png

谢谢分享。已经在207VE修正,666
没毛病。

回到
顶部

发布
问题

投诉
建议