历史上的今天
今天是:2024年09月03日(星期二)
2021年09月03日 | 【STM32】Debug下禁用看门狗
2021-09-03 来源:eefocus
问题背景:
因为工程中加入了独立看门狗IWDG,但是有时候需要硬件仿真单步调试设置个断点啥的,这时候看门狗就会因为没有及时喂狗复位,弹窗报错,整个仿真都不能继续了。实测JLINK会弹窗如下图所示,但是亲儿子STLINK没有任何弹窗…

之前一直都是在debug的时候关掉看门狗宏定义,但是这样麻烦不说,会有一个隐患存在就是,真正的项目工程是需要看门狗的,我们随意关掉的话,终究会存在debug完之后忘记再重新打开看门狗的问题,所以我们最好的办法是能够在debug这个特定的条件下,冻结掉看门狗,就像低功耗下冻结看门狗一样。
解决办法:
翻阅参考手册


#define __HAL_DBGMCU_FREEZE_IWDG() SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)
#define __HAL_DBGMCU_UNFREEZE_IWDG() CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)
/*********************调试模式下禁用独立看门狗IWDG**********************************/
__HAL_RCC_DBGMCU_CLK_ENABLE(); //打开时钟
__HAL_DBGMCU_FREEZE_IWDG(); //调试模式下,冻结看门狗计数器时钟
__HAL_RCC_DBGMCU_CLK_DISABLE(); //关闭时钟
/*********************调试模式下使能独立看门狗IWDG**********************************/
__HAL_RCC_DBGMCU_CLK_ENABLE(); //打开时钟
__HAL_DBGMCU_UNFREEZE_IWDG(); //调试模式下,使能看门狗计数器时钟
__HAL_RCC_DBGMCU_CLK_DISABLE(); //关闭时钟
史海拾趣
|
大事化小,成功一点点做起 我是搞工程的,我自己在做事的时候喜欢把任务分为许多块,没完成一个就有一次成就感,这样愉快的进行下一个目标。我平时也训练自己的这方面的能力,比如每天做俯卧撑20个,抄写古文等,目前已经抄写过《论语》,《孙子兵 ...… 查看全部问答> |
|
问题描述: 1.一个流式驱动,工作流程是硬件触发一个中断,系统采集到数据信息后通过xxx_READ将采集到的数据发给应用层; 2.驱动通过一个线程函数来获取GPIO的中断信号,并读取值从打印信息打印出。 (这里的处理正常,有多少中断都接受到,并且 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 屏幕越大待机时间越短 已成消费者最大诟病 手机电池标准统一咋就这么难 中国消费者协会日前发布2009年全国手机消费者满意指数测评情况显示,消费者对手机电池待机时间短最为不满。 如果说待 ...… 查看全部问答> |
|
应该说BootPart算是微软提供的一个用于分区的模块,可以在EBOOT中使用。不过说实话,我很少使用它,知道有些厂商的BSP里面支持这个功能,而且也算是EBOOT的一部分,所以还是介绍一下。 EBOOT中的BootPart架构 在EBOOT中,BLCOMMON处于最上层, ...… 查看全部问答> |
|
在银行自动提款时,都有语音提示,前几天农行的帅哥还把提示音换成了TOM猫的搞笑声音,我想问一下怎样将人声转换成c代码,然后利用DA输出至喇叭,实现语音提示。可是在网上没有找到转换软件。网上有蜂鸣器的代码转换软件,(http://download3.pudn. ...… 查看全部问答> |
|
为什么发送的时候是判断UDREn是否为1,而不是判断TXCn是否为1呢?书上说只要发送移位寄存器和发送缓冲寄存器为空就会置位TXCn的啊,初始化后这两个寄存器难道不是空吗?不解啊,刚学,很多不懂的地方… 查看全部问答> |




