串口IAP无法COPY APP FLASH,总是显示Illegal FLASH APP!!!

2019-07-20 09:24发布

新手,F767,一开始用官方例程都OK。后来自己想实现在串口接收完APP,再COPY到FLASH后,运行APP,而且要复位后还是自动运行此APP。

所以自己将中断向量偏移改为FLASH基址,又将IROM1从0X8010000改为0X8000000,然后传过去 APP,然后COPY,然后黑屏。。。
自己感觉不对,然后赶紧断电,又重新下的程序,想把之前的FLASH盖掉,所以下的以太网程序,较大。
现在又下的官方例程,BOOTLOADER和APP都是官方的,问题来了,现在BOOTLOADER下完,传过去APP,无论如何也无法COPY到FLASH内,总是显示Illegal FLASH APP!
现在保证都是官方的例程,而且BIN生成的也没有错误,为何会出现这样的问题?怎么解决?
能不能实现自己当初的那个想法,如何实现?
请大神赐教!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
duanzhiruorou
1楼-- · 2019-07-20 13:30
又试了几遍,发现了规律:只有当串口一次性发送完BIN文件时,才能成功COPY和执行FLASH代码。为什么有时是分段的呢?串口通信不稳定吗?
login_FAE
2楼-- · 2019-07-20 18:25
 精彩回答 2  元偷偷看……
jkd405
3楼-- · 2019-07-21 00:12
一般IAP都是从bootloader启动,可以设置一个倒计时多少自动进app就好了
duanzhiruorou
4楼-- · 2019-07-21 03:33
login_FAE 发表于 2018-2-26 17:07
例程是按键才会运行app,简单改一下就可以的

谢谢。想再问一下,例程是从BOOTLOADER中启动,然后按键再运行APP FLASH。可是APP FLASH 中可不再包含BOOTLOADER!!!这样的话假如APP FLASH 中是用来升级程序的,那么程序只能升级一次吗?
我自己试过把例程中的BOOTLOADER程序改成了一个APP FLASH(IROM1改为0X8010000,中断向量也加上),也就是说这个APP FLASH 中包含了BOOTLOADER,暂且叫他APP1。
接下来,先下官方例程BOOTLOADER,再下自己制作的APP1,运行正常,按KEY2 可以来回在官方BOOTLOADER 程序和APP1中来回切换(这一点有点意外,自己以为只能切换到APP1,切换不到官方BOOTLOADER程序中,除非重启),现在问题来了,运行APP1后无法再接收新的APP FLASH,会黑屏死机,而且下不了程序,只能再讲BOOT0接地,从ST 的BOOTLOADER 中再刷回来。怎么会这样?如何操作可以让APP1也能接收并运行新的APP FLASH?
abdfgh
5楼-- · 2019-07-21 05:42
 精彩回答 2  元偷偷看……

一周热门 更多>