TM32的Flash应用答疑-详解禁用调试端口功能

Introduction

绝大多数MCU产品在开发完成即将进入量产环节前,为了防止存放在芯片内部flash的程序被意外地篡改,通常会通过禁用下载调试端口,例如Arm核心的处理器使用的JTAG/SWD端口,以此实现读保护的效果。但是,使用禁用调试下载端口的功能时,一定要在应用程序中留一把“钥匙”,在必要的时候,可以通过其它的手段,例如通过UART串口发送一条命令,能够再恢复调试下载端口。

这就好比,锁上门不让未授权的人进屋子,但如果外面的人敲敲门,屋里面的人认识敲门的人,再把门打开,外面的人就可以进屋了。

Principles

各家MCU厂商对禁用调试端口的功能类似,需要将上锁和解锁的配置存放在一块掉电不丢失的存储空间中,以确保每次启动芯片时能自动生效。

以国产云途半导体设计发售的YTM32B1MD14微控制器(Arm Cortex-M33内核)为例,禁用和恢复JTAG/SWD端口的配置位于CUS_NVR区域中,这是一块映射到flash存储器的区域。如图x所示。

在这里插入图片描述
在这里插入图片描述

图x CUS_NVR在存储空间中的位置

其中,禁用JTAG/SWD端口的相关寄存器(存放在flash中),如下:

#define EMF_CUS_NVR_BASE_ADDR            0x10000400

/* for MD. */
#define EFM_CUS_NVR_CUS_KEY_VALUE_ADDR   0x10000400
#define EFM_CUS_NVR_DISABLE_JTAG_ADDR    0x10000408
#define EFM_CUS_NVR_EFM_PROT0_ADDR       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值