跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Blogs
  3. YTM32Bx系列MCU Debug功能关闭与开启

YTM32Bx系列MCU Debug功能关闭与开启

已定时 已固定 已锁定 已移动 Blogs
1 帖子 1 发布者 265 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • houjun_xiaoH 离线
    houjun_xiaoH 离线
    houjun_xiao YunTu
    写于 最后由 houjun_xiao 编辑
    #1

    在客户应用中,为了软件安全,可能需要关闭MCU JTAG(SWD) debug功能。YTM32Bx系列MCU可通过对CUS_NVR Flash指定地址写入规定数据(详见MCU用户手册)实现开启/关闭JTAG(SWD) debug功能。

    以YTM32B1MD14为例,对CUS_NVR Flash地址0x10000408--0x1000040F中写入0x5A5A5A5A,0x5A5A5A5A及可禁用debug,将0x10000408--0x1000040F中值恢复至0xFF即可使能JTAG(SWD)debug功能。如下代码可实现CUS_NVR数据擦写功能,需注意这段代码需在RAM中运行,使用时应将其强制分配至RAM中。

    void Test_CusterNvrErase(void)
    {
        EFM->CMD = 0U;
        EFM->STS = EFM_STS_FAIL_MASK |
                    EFM_STS_ACCERR_MASK |
                    EFM_STS_UNRECOVERR_MASK |
                    EFM_STS_RECOVERR_MASK |
                    EFM_STS_DONE_MASK;
        EFM->CUS_KEY = 0x4dff32;
        EFM->NVR_ADDR = 0x10000400U;
        EFM->CMD_UNLOCK = 0xfd9573f5;
        EFM->CMD = 0x41U;
        while ((EFM->STS & EFM_STS_DONE_MASK) == 0U) 
        {
        }
    }
    
    void Test_DisableNvrDebug(void)
    {
        EFM->CMD = 0U;
        EFM->STS = EFM_STS_FAIL_MASK |
                    EFM_STS_ACCERR_MASK |
                    EFM_STS_UNRECOVERR_MASK |
                    EFM_STS_RECOVERR_MASK |
                    EFM_STS_DONE_MASK;
        EFM->CUS_KEY = 0x4dff32;
        EFM->NVR_ADDR = 0x10000408U;
        EFM->NVR_DATA[0] = 0x5A5A5A5AU;
        EFM->NVR_DATA[1] = 0x5A5A5A5AU;
        EFM->CMD_UNLOCK = 0xfd9573f5;
        EFM->CMD = 0x40U;
        while ((EFM->STS & EFM_STS_DONE_MASK) == 0U) 
        {
        }
    }
    

    JTAG(SWD) debug功能被禁用后,无法通过jtag将其恢复,仅能通过flash driver擦除CUS_NVR并复位MCU后,才能恢复JTAG(SWD) debug功能。因此,若用户需要在特定条件下恢复debug功能,则需在软件中预留Test_CusterNvrErase代码,并预留触发执行该代码的机制。

    开启JTAG(SWD) debug功能时,因CUS_NVR被擦除,故导致该区域中存储的其他数据(ADDR_PROT寄存器默认值,用户CUS_KEY等)被清除,因此使用过程需根据实际情况保存其他数据。

    附件所示代码为YTM31B1MD14 JTAG(SWD) debug禁用/使能测试代码。
    Debug_Disable.zip

    1 条回复 最后回复
    0

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • demo
    19
    can
    18
    uds
    11
    lin stack
    7
    fbl
    5
    yt-link
    5
    md14
    4
    adc模块
    3
    Online Users
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门