F407通过网络远程升级失败,遇到写stmflash失败的问题,请大侠指点

2019-07-20 14:30发布

    我做了一个远程升级功能: boot + app
    stmflash 大小为1M,boot (64k) + App(470k) + Update(470k)  +  Flag(20k)
    我的设想是,boot 引导 app 执行,app 中使用了lwip协议栈,做的有telnet server 功能,通过telnet 执行update 的升级命令,将更新app,通过tftp协议下载到
    stmflash 的update 区,同时将app的大小和app 更新标志写到Flag区。然后通过telnet 执行reboot 重启设备。

    当前遇到的情况是:
    1、在app中  下载了更新app后,在写stmflash 的 flag 区的时候,总是写失败。
    2、我在boot中,写flag区和update区,都能够写成功。
    不知道为什么会出现这种情况,谁知道什么原因,请指教,谢谢。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
augustedward
2019-07-20 21:20
470K你怎么分的,flash有4个16K的扇区,1个64K的扇区,7个128K的扇区,要擦除时是要整个扇区擦除的。我想是你写flag时,内存不够用了,如果flag(20K)是在芯片最后一个扇区,并且 20k为脏(就是有数据),那么想要写,就要先擦除128K数据,此时要申请128K的内存,先把数据读出来,再擦,若申请不成功,也就写不进去了。

一周热门 更多>