我在产品当中使用了IAP,然后在IAP里面有使能了读保护功能,看网上的资料有讲它会默认将前面的几个扇区使能写保护,通过实验证明确实如此。目前想通过程序来更新IAP,但因为上面有几页无法擦除,所以造成失败。 在V3.5的库里面有看到写保护的,是否有取消写保护。 |
【MCU实战经验】基于STM32F103C8T6的hart总线调试器设计
求教STM32F103进入STOP模式后用外部中断唤醒的问题
基于STM32F103RCT6的无源蜂鸣器音乐播放(生日快乐歌)
STM32F103c8t6有没有DAC 功能?
STM32F103x中文数据手册
新手求教,为何在我电脑上找不到STM32F1Xx.h文件
金龙107例程汇总(STM32F107)
万利STM32F107VC 原理图
STM32F103 ADC多通道检测必须要DMA吗?
【官方例程】STM32F107以太网官方例程
使用STM32 ST-LINK Utility工具解除这些扇区保护试看看:
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
有的写保护机制 上电默认都是写保护的 需要对flash解锁才可以写操作
我的目的是实现在线反过来升级IAP程序,IAP有一个bug需要修复,而且数量有点多。
在我的IAP代码里面,只添加了一了读保护的动作
FLASH_ReadOutProtection(ENABLE);
如果IAP第一次上电还没有执行上面的语句或在烧录的时候没有点选读保护,就可以成功的通过Application来反升IAP,否则就会擦除失败。
读保护机制 好像有几个级别的 这个你可以参考数据手册响应的章节 读保护机制开启后 好像只能全部擦除 具体你看下相关的资料吧
如8楼所说,读保护开启后,如果你要清除读保护,那么整片Flash将会自动擦除。
这个是我之前工程应用中验证过的,当时使用的片子是STM32F103RBT6。
当设置读保护后,无法用ulink下载程序,直接擦除也不好使,点擦除只是复位后程序跑不起来了,但无法重新下载,没用其它仿真器验证过。
这种情况,只有建一个在RAM中跑的工程清除读保护,或者用ISP模式用串口清除读保护。
评分
查看全部评分
评分
查看全部评分
经我测试在RAM清除读保护同样不行的,因为一旦执行了清除读保护,系统感觉会重新启动,这样RAM当中的程序自然也没有了。
我是按照这个流程来操作的,现在的问题点是我在IAP里面有设置了读保护,而读保护又会自动默认设置前面4页的写保护,造成APP不能更新IAP的程序段。所以要先去写保护,而去写保护又要重启(STM官网的资料是这样要求的),而APP无法早于IAP启动,所以这个点就无法跳过
就是在实现更新时,在外部FLASH中,保存一个表示升级的标志,
当程序重启时,在IAP中判断,
如果外部FLASH中有升级标志,就停止读保护,
然后启动APP,在APP中进行升级,
升级完成后,把标志i设置为升级完成。
重启,IAP中判断,如果标志为升级完成,清除标志,并设置读保护。
评分
查看全部评分