【简介】
我们在上一篇使用了Mass Erase 的方式对flash 的数据进行保护,这种场景我们会把flash erase 掉进入unsecure 的状态来继续debug,此时flash 的数据已经被擦除了,实际使用中会存在这样的需求,关闭硬件的debug 口,遇到特殊的问题还需要能够通过debug 口连接进行调试。S32K1系列是支持这种场景的需求,芯片可以在secure 设置backdoor key 如果校验通过则恢复debug 口的访问。
其中backdoor 的值可以通过400~407 进行配置
我们配置backdoor key 为0x5555555555555555 并关闭Mass Era
然后程序通过串口解除debug 访问限制
接触flash 的安全访问流程是通过FTFC 发送FTFx_SECURITY_BY_PASS 解除命令加上backdoor 的验证key来解除secure 状态,对应流程文档上描述如下
对应的代码流程也是按照这个流程进行backdoor key 的写入验证
我们将上述开启了KEYEN保护的程序编译下载后,通过jlink 访问芯片已经无法访问了
我们再串口中解除secure 访问限制,LOG 打印可知已经成功解除secure 访问限制了
解除限制后再次使用jlink 连接芯片后发现已经可以进行连接访问了。
实际使用中可以添加多种触发方式来避免其中一种通讯失效无法debug 访问的问题,不过一般关闭debug 的时机代码的稳定性也是到达比较稳定的时机才会开启。