soul24k123456 发表于 2018-2-7 14:43:28

STM32F103如何取消写保护

我在产品当中使用了IAP,然后在IAP里面有使能了读保护功能,看网上的资料有讲它会默认将前面的几个扇区使能写保护,通过实验证明确实如此。目前想通过程序来更新IAP,但因为上面有几页无法擦除,所以造成失败。

在V3.5的库里面有看到写保护的,是否有取消写保护。

wenyangzeng 发表于 2018-2-8 11:26:37

STM32F103系列好像没有写保护功能,
使用STM32 ST-LINK Utility工具解除这些扇区保护试看看:


Tcreat 发表于 2018-2-7 17:54:17

Flash 上电默认都是写保护的 如果需要对flash写操作操作 需要开启写保护的

soul24k123456 发表于 2018-2-7 18:08:00

依据我测试的结果,好像默认没有写保护的,这个只是我写了读保护后,才会出现前面几个扇区写保护了,如果不写读保护则可以通过内部代码进行擦写操作

不吃肉的羊 发表于 2018-2-7 18:23:17

使用JLINK,清除整个芯片

Tcreat 发表于 2018-2-7 18:37:54

本帖最后由 Tcreat 于 2018-2-7 18:53 编辑

soul24k123456 发表于 2018-2-7 18:08
依据我测试的结果,好像默认没有写保护的,这个只是我写了读保护后,才会出现前面几个扇区写保护了,如果不 ...
有的写保护机制 上电默认都是写保护的需要对flash解锁才可以写操作

soul24k123456 发表于 2018-2-7 20:09:54

不吃肉的羊 发表于 2018-2-7 18:23
使用JLINK,清除整个芯片

我的目的是实现在线反过来升级IAP程序,IAP有一个bug需要修复,而且数量有点多。

soul24k123456 发表于 2018-2-7 20:14:28

Tcreat 发表于 2018-2-7 18:37
有的写保护机制 上电默认都是写保护的需要对flash解锁才可以写操作

在我的IAP代码里面,只添加了一了读保护的动作
FLASH_ReadOutProtection(ENABLE);
如果IAP第一次上电还没有执行上面的语句或在烧录的时候没有点选读保护,就可以成功的通过Application来反升IAP,否则就会擦除失败。

Tcreat 发表于 2018-2-7 20:20:37

soul24k123456 发表于 2018-2-7 20:14
在我的IAP代码里面,只添加了一了读保护的动作
FLASH_ReadOutProtection(ENABLE);
如果IAP第一次上电还没 ...

读保护机制 好像有几个级别的这个你可以参考数据手册响应的章节读保护机制开启后 好像只能全部擦除具体你看下相关的资料吧

toofree 发表于 2018-2-7 23:38:27

本帖最后由 toofree 于 2018-2-7 23:44 编辑

如8楼所说,读保护开启后,如果你要清除读保护,那么整片Flash将会自动擦除。
这个是我之前工程应用中验证过的,当时使用的片子是STM32F103RBT6。
当设置读保护后,无法用ulink下载程序,直接擦除也不好使,点擦除只是复位后程序跑不起来了,但无法重新下载,没用其它仿真器验证过。
这种情况,只有建一个在RAM中跑的工程清除读保护,或者用ISP模式用串口清除读保护。

wudianjun2001 发表于 2018-2-8 08:22:47

先解锁,再写,写完再加锁
页: [1] 2
查看完整版本: STM32F103如何取消写保护