各位好,目前正在用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是如何实现的,不胜感激! |
关于CUBEMX死区模式使用?
用STM32G474 如何实现带同步整流管的BUCK 电路负载小的时候时提前关闭同步整流管的驱动功能?
STM32H743做数字电源,HRTIM问题
Efuse 与高侧开关选择
广州招募嵌入式软件工程师。
Stm32f407zet6 步進馬達干擾問題
不同年份LM239DT集成电路内部阴影会不一样吗?
有没有人用STM32F103系列做过PMBus的主机呀?和I2C再配置上有什么区别吗?
LDL1117S33R 输出电容 ESR 选择问题
L5973D开关电源芯片带载电流波动问题
这个方法是个不错的思路。唯一美中不足之处就是怕这时候掉电,看看应用中这种小概率事件能不能接受吧。
应该没问题啊,每次上电,都是自举程序先运行,不需要下载的时候,跳转到应用区运行