看门狗调试(不关看门狗调试程序)

调试模式下如何调试看门狗

大家在调试GD32 MCU系统的时候,若开了看门狗外设,是否会碰到进入调试模式看门狗就会咬狗造成无法调试的问题?
碰到这种情况,一般是将看门狗关闭,然后再进行调试,但这个时候看门狗外设就无法工作了,GD32 MCU的调试模块可支持调试模式下看门狗的工作,包括断点还有单步的时候暂停看门狗计数,进而不会造成调试模式下看门狗咬狗复位的现象。
寄存器上可以控制以下两个控制位,比如希望调试FWDGT独立看门狗,就可以将FWDGT_HOLD控制位置1,就可以在调试模式下,当内核停止时保持FWDGT计数器的时钟。

软件上相关配置可参考以下代码:
C
        dbg_periph_enable(DBG_FWDGT_HOLD);//打开独立看门狗调试模式
        dbg_periph_disable(DBG_FWDGT_HOLD);//关闭独立看门狗调试模式

源代码如下


#include "gd32f10x_fwdgt.h"

/*!
    \brief      enable write access to FWDGT_PSC and FWDGT_RLD
    \param[in]  none
    \param[out] none
    \retval     none
*/
void fwdgt_write_enable(void)
{
    FWDGT_CTL = FWDGT_WRITEACCESS_ENABLE;
}

/*!
    \brief      disable write access to FWDGT_PSC and FWDGT_RLD
    \param[in]  none
    \param[out] none
    \retval     none
*/
void fwdgt_write_disable(void)
{
    FWDGT_CTL = FWDGT_WRITEACCESS_DISABLE;
}
/* registers definitions */
#define FWDGT_CTL                   REG32((FWDGT) + 0x00U)                    /*!< FWDGT control register */
#define FWDGT_PSC                   REG32((FWDGT) + 0x04U)                    /*!< FWDGT prescaler register */
#define FWDGT_RLD                   REG32((FWDGT) + 0x08U)                    /*!< FWDGT reload register */
#define FWDGT_STAT                  REG32((FWDGT) + 0x0CU)                    /*!< FWDGT status register */


 

参考链接

调试模式下如何调试看门狗

调试模式下如何调试看门狗? - - 21ic电子技术开发论坛icon-default.png?t=N7T8https://bbs.21ic.com/icview-3394082-1-1.html

特此记录

anlog

2024年8月3日

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值