stm32 设置读保护之后
通过j-link设置secure chip ,就是设置了读保护。做IAP升级时,发现擦除前4Kbyte 时擦除失败,4k字节之后的擦除成功,这样导致升级失败。那么问题:设置读保护之后,前0-3页默认设置了写保护吗?是不是擦到你的用户程序了 设置读保护后,前4k默认写保护,外部程序写不了。
我一般用读保护函数
FLASH_Unlock();//好像不解锁也行?
FLASH_ReadOutProtection(ENABLE);
FLASH_Lock();
馒头弟 发表于 2018-6-11 09:23
设置读保护后,前4k默认写保护,外部程序写不了。
我一般用读保护函数
FLASH_Unlock();//好像不解锁也行 ...
“FLASH_Unlock();//好像不解锁也行?”
这行注释,跟我的风格一模一样。缘分 本帖最后由 toofree 于 2018-6-11 10:00 编辑
对板凳楼层做补充 :)
以STM32F103为例,读保护后,中、低密度的芯片PAGE0-3被自动写保护;高密度的芯片FAGE0-1被自动写保护。
由于中、低密度的一个PAGE是1K,高密度的一个PAGE是2K,因此高、中、低密度全系列的芯片,都是最低4K被自动写保护
顺带想问一句:为什么要这样设计?有什么好处? 也可以参阅【如何利用STM32代码设置读保护功能】
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=606666&fromuid=2091055
【STM32读写保护功能及设置】
【设置FLASH的读写保护及解除—零死角玩转STM32】
读保护设置后将不能读出flash 的内容;当解除读保护的时候stm32 会自动擦出整篇flash;设置:读保护设置:在程序的开头加入“读保护”代码,即实现了。。。
页:
[1]