求助各位ti的工程师,为什么我的板子做oad空中升级后需要我手动复位才能用啊,OAD升级之后不是有个自动复位的功能的吗?我有一块其他的板子就不需要手动复位,实在搞不懂为什么啊,如果实在不行加软件复位的功能,这应该在哪边加啊,不知道oad升级完之后程序跑到哪边去了???
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
yang,
你确定你的oad已经完成了吗?手动重启后,有没有检查是否运行了新的固件呢?
在oad_target.c 中,oad过程写flash的代码是oadImgBlockWrite(),当完成之后,
如果你定义了 FEATURE_OAD_SECURE,就会直接调用HAL_SYSTEM_RESET()重启,
不然会通过checkDL()做校验,如果通过的话,也会调用HAL_SYSTEM_RESET()重启系统。
一般默认情况下应该不会定义FEATURE_OAD_SECURE,所以我估计你的问题有可能在checkDL()中校验没通过。你可以设置断点看看,最后会不会来这里。
如果上面一切都正常,那么是否硬件设计上有问题呢?