【简介】
我们在之前两篇介绍了secure debug 的Mass Erase和 Backdoor 访问的,DEBUG 口保护功能。
【S32K146】S32K146 片内 flash 安全访问之 Mass Erase
【S32K146】S32K146 片内 flash 安全访问之 Backdoor Key
不同于Mass Erase和 Backdoor 是对于debug 端口的保护,flash 的数据保护是保护flash 区域不能被擦除及更新,Pflash 的数据保护是通过FPORT0~3进行保护的,以下是S32K-RM手册中对该组寄存器的描述。
从上述描述可以看出pfalsh 被划分为32 region,类如S32K146 芯片的PFLASH 大小为1MB,对应每个region 的大小为1024kB/32 = 32KB ,其中FPORT0~3 32bit 每个bit 对应一个region 的控制设置为0时对该region 进行保护,为1 时关闭对应region 的保护功能。
对应的map 保护映射关系如下
FLASH 的保护配置和Mass Erase和 Backdoor 一样都可以通过flash config filed 来进行配置。
修改flash config 的配置开启末端的32K为数据保护。
程序启动后读取FPORT 寄存器的值和falsh config 的数值一致。
此时我们尝试通过调试器对flash 末段32K进行更新会提示如下的错误flash 无法通过JLINK进行更新,说明FLASH的数据保护功能已经生效。
S32K 除了支持对Pflash 进行保护对Dflash 和 EEPROM 也是可以支持数据保护的,配置和Pflash 是类似的再此就不再赘述了。