STM32 boot_lock 导致debug swd锁死

STM32 某些型号的单片机有boot_lock寄存器,boot_lock用于控制单片机启动模式的。一旦置位boot_lock,单片机默认从内部flash启动,不经过system memory也就是BootLoader。

其他型号上是通过nboot等几个寄存器组合控制启动模式的,boot_lock只有在新型号上有,功能上看着有点重复,猜测是和某些安全特性配合使用的。

最近为了做固件保护,尝试用了boot_lock配置启动模式,但配置后发现debug锁死了。网上查了半天没啥有用的帖子,后来仔细看了下manual发现这个feature坑的地方,配置boot_lock + rdp level 1之后,全局的debug寄存器会自动被复位,也就导致debug jtag/swd口锁死。

最坑的是这个状态时断头路,一旦配置除非固件去配置dbg_swen否则无法修复!芯片就永久没法用swd调试或下载flash了。

规避方法

1、错配boot_lock + rdp level之后,不要复位芯片,立刻去做全擦除并且改掉boot lock。但这种方法通常没鸟用,配错并且不复位的情况太少了。

2、配置之前,固件留好后门或者固件上来就去使能dbg_swen

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值