STM32H7内部Flash的读保护说明(Level0默认,Level1连接保护,Level2设备和自举保护)
RDP(read out protection)
1、Level 0(无保护)
默认设置,所有读写和擦除操作都可以正常支持。
2、Level 1 (Flash连接保护)
(1)可以防止连接调试器时读取Flash内容,或者RAM中存有恶意获取代码,也是禁止的。
因此只要调试器连接芯片,或者从内部RAM启动运行代码,都是禁止访问内部Flash的
(2)如果没有检测到从内部RAM启动,从系统bootloader启动且没有连接调试器,对用户Flash的读写和擦除操作都是允许的,并且其它安全存储区也是可以访问的。否则是禁止访问的,一旦检测到对Flash的读请求,将产生总线错误。
(3)如果将Level 1切换到Level 0时,用户Flash区和安全区域将被删除。
3、Level 2(设备保护和自举保护)
(1)所有调试特性被关系。
(2)禁止从RAM启动。
(3)除了选项字节里面的SWAP位可以配置,其它位都无法再更改。
(4)禁止了调试功能,且禁止了从RAM和系统bootloader启动,用户Flash区是可以执行读写和擦除操作的,访问其它安全存储区也是可以的。
特别注意:Level2修改是永久性的,一旦配置为Level2将不再支持被修改。
一览表:
设置读保护的话,使用HAL的API可以设置,也可以使用STM32CubeProg设置:
微信公众号:armfly_com
安富莱论坛:www.armbbs.cn
安富莱淘宝:https://armfly.taobao.com