本帖最后由 kourbeck 于 2016-1-4 14:18 编辑
stm32f407zet6,ucos-III。
我把flash分成了几个区,08000000是bootloader,08040000是运行区。
外部的nor flash分两个区(0区和1区)分别存储应用程序的双备份。
启动的时候,bootloader判断启动标志,若是0区,则把0区的应用程序拷贝到08040000中,然后从08040000启动。若标志是1区,则拷贝1区的应用程序到08040000。
现在0区和1区的应用程序完全一样,bootloader下用命令判断也是完全一样。
问题:
若将标志设为1区,bootloader正常引导应用程序;若标志为0区,则进到HardFault_Handler中。
不管是0区还是1区,都对比过08040000的应用程序与0区和1区的应用程序,都是完全一样的。
如果用仿真器直接烧到08040000,也能起来,不管启动标志是0区还是1区,此时对比三个区的应用程序,也都是一样的。
明明是一样的应用程序,不知道为什么,会有如此大的区别。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>