请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H723ZET6 FLASH擦除问题

[复制链接]
sunny1532632013 提问时间:2022-7-2 15:58 / 未解决
各位好,目前正在用STM32H723ZET6做IAP升级,发现一个比较严重问题,FLASH擦除时只能使用BANK擦除和SECTOR擦除。BAN1擦除是把FALSH全部擦掉,所以不考虑;SECTOR擦除是把其中一个SECTOR擦除,由用户指定,所以我使用了SECTOR擦除。
STM32H723ZET6共有512K FLASH,由4个SECTOR组成(每个SECTOR由128K组成);整块FLASH由APP和BOOTLOADER组成,由于最小擦除单位是128K,因此app和bootloader不能放在同一个SECTOR(防止擦除APP时将BOOTLOADER也擦除)。因此,APP使用了256K,BOOTLOADER使用了128K。如果我想把BOOTLOADER放小,该怎么做?
程序从0800 0000开始运行,首先判断APP的首地址(0802 0000)和尾地址(0806 0000)固定地址的固定字符是否完整,如果完整的话,就跳到APP应用程序去执行;如果不完整,将在BOOTLOADER中等待升级。正常升级时,在APP应用程序中将APP的首地址(0802 0000)和尾地址(0806 0000)固定地址修改为其他字符,重启后BOOTLOADER就会认为APP不完整,等待升级了。但是由于只能擦除128K,导致在擦除固定字符时,也把全APP应用程序全部擦除了。导致无法实现IAP在线升级功能。
STM32F103系列对FLASH操作时有PAGE页擦除,一次只擦除1K,因此没有问题。
所以想请教下各位,STM32H723ZET6是否有擦除小于128K的FLASH的指令;如果没有,各位的IAP是如何实现的,不胜感激!
收藏 评论4 发布时间:2022-7-2 15:58

举报

4个回答
butterflyspring 回答时间:2022-7-5 10:49:56
geowhy 发表于 2022-7-2 23:13
能否使用芯片的自举程序,APP升级时,通过自举程序先将bootloader加载的RAM中运行,然后升级APP程序
...


这个方法是个不错的思路。唯一美中不足之处就是怕这时候掉电,看看应用中这种小概率事件能不能接受吧。
geowhy 回答时间:2022-7-2 23:13:52
能否使用芯片的自举程序,APP升级时,通过自举程序先将bootloader加载的RAM中运行,然后升级APP程序
yklstudent 回答时间:2022-7-3 10:49:48
没有,不然还是换芯片吧,比如选择F4或者F7啊,L4和L5都行
geowhy 回答时间:2022-7-5 12:50:13
butterflyspring 发表于 2022-7-5 10:49
这个方法是个不错的思路。唯一美中不足之处就是怕这时候掉电,看看应用中这种小概率事件能不能接受吧。
...

应该没问题啊,每次上电,都是自举程序先运行,不需要下载的时候,跳转到应用区运行
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版