使用STM32 ST-LINK Utility工具解除这些扇区保护试看看:
toofree 发表于 2018-2-7 23:38
如8楼所说,读保护开启后,如果你要清除读保护,那么整片Flash将会自动擦除。
这个是我之前工程应用中验证 ...
经我测试在RAM清除读保护同样不行的,因为一旦执行了清除读保护,系统感觉会重新启动,这样RAM当中的程序自然也没有了。 wudianjun2001 发表于 2018-2-8 08:22
先解锁,再写,写完再加锁
我是按照这个流程来操作的,现在的问题点是我在IAP里面有设置了读保护,而读保护又会自动默认设置前面4页的写保护,造成APP不能更新IAP的程序段。所以要先去写保护,而去写保护又要重启(STM官网的资料是这样要求的),而APP无法早于IAP启动,所以这个点就无法跳过 能否把程序改一下:
就是在实现更新时,在外部FLASH中,保存一个表示升级的标志,
当程序重启时,在IAP中判断,
如果外部FLASH中有升级标志,就停止读保护,
然后启动APP,在APP中进行升级,
升级完成后,把标志i设置为升级完成。
重启,IAP中判断,如果标志为升级完成,清除标志,并设置读保护。
是否可以采用两段式bootloader,在bootloader S1中实现判断是否更新程序,不更新直接跳转的app,如果需要更新S1先下载一个S2BootLoader,S2放置到RAM中,并把控制权交给S2,此时S2在RAM中执行,可以清除保护并擦除S1和APP,接收数据后从新写入到Flash并保护S1。我自己都有点儿乱,不过还是希望能帮到你。 你好,我也遇到和你类似的问题,IAP区被写保护了,APP不能区更新IAP区。请问你的解决了么?我看到说运行解除读保护那句话,就会在下次上电的时候擦出整个flash,那就白搞啦。好无语
页:
1
[2]