NapoleonWang 发表于 2017-4-25 13:08:52

stm32 设置读保护之后

通过j-link设置secure chip ,就是设置了读保护。做IAP升级时,发现擦除前4Kbyte 时擦除失败,4k字节之后的擦除成功,这样导致升级失败。那么问题:设置读保护之后,前0-3页默认设置了写保护吗?

wudianjun2001 发表于 2018-6-11 09:22:49

是不是擦到你的用户程序了

馒头弟 发表于 2018-6-11 09:23:08

设置读保护后,前4k默认写保护,外部程序写不了。
我一般用读保护函数
                FLASH_Unlock();//好像不解锁也行?
                FLASH_ReadOutProtection(ENABLE);
                FLASH_Lock();

toofree 发表于 2018-6-11 09:41:24

馒头弟 发表于 2018-6-11 09:23
设置读保护后,前4k默认写保护,外部程序写不了。
我一般用读保护函数
                FLASH_Unlock();//好像不解锁也行 ...
“FLASH_Unlock();//好像不解锁也行?”
这行注释,跟我的风格一模一样。缘分

toofree 发表于 2018-6-11 09:59:16

本帖最后由 toofree 于 2018-6-11 10:00 编辑

对板凳楼层做补充 :)
以STM32F103为例,读保护后,中、低密度的芯片PAGE0-3被自动写保护;高密度的芯片FAGE0-1被自动写保护。
由于中、低密度的一个PAGE是1K,高密度的一个PAGE是2K,因此高、中、低密度全系列的芯片,都是最低4K被自动写保护









ldptest 发表于 2018-6-11 13:23:13

顺带想问一句:为什么要这样设计?有什么好处?

feixiang20 发表于 2018-6-12 00:44:57

也可以参阅【如何利用STM32代码设置读保护功能】
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=606666&fromuid=2091055
【STM32读写保护功能及设置】
【设置FLASH的读写保护及解除—零死角玩转STM32】
读保护设置后将不能读出flash 的内容;当解除读保护的时候stm32 会自动擦出整篇flash;设置:读保护设置:在程序的开头加入“读保护”代码,即实现了。。。
页: [1]
查看完整版本: stm32 设置读保护之后