一种在不改变源码的情况下测试看门狗复位的方法

什么是“看门狗”?

看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。

可以说有了“看门狗”的存在,你可以睡得更香了,代码受到干扰或者“bug制造者”写了一个错误的代码,异常跑飞了,“看门狗”能够使系统复位,毕竟重启能解各种疑杂症

看门狗如何测试?

对于“看门狗”测试,首先我们要搞清除看门狗的工作流程,本章节不介绍如何代码实现。

只需要,看门狗初始化->定时喂狗,如果超时没有喂狗,那么狗就要干活了,也就是把你的系统重新复位运行。

研发测试方法:

对于研发比较简单,一般初始化完不喂狗,或者除了main while(1)之外的地方,我们再人为制造一个while(1)死循环,这样就可以测试看门狗复位.

测试工程师测试方法

对于测试工程师来说,总不能拿着你研发自测的代码去测试吧,虽然说单项测试没问题,但是指不定正式固件会出什么幺蛾子~

所以测试工程师必要的话,必须是基于正式固件去测试

那么问题来了,看门狗是在异常情况下才会起作用,我们一般很难人为的去制造看门狗的异常,除非代码确实有bug

好在“天无绝人之路”,jlink给了我们一种方法,一般我们用jlink多是调试仿真、下固件

安装jlink的时候,其实还有很多工具可以用的

比如我们可以用jlink实现串口print功能

今天要介绍的是通过jlink命令工具来对MCU发送一些命令,这个工具叫J-Link Commander

先来连接到我们的目标芯片

接下来我们就可以对MCU发送一些命令:

Mem 读内存

mem8 读8字节内存

mem16 读16字节内存

mem32 读32字节内存

w1 写8字节内存

w2 写16字节内存

w4 写32字节内存

h 停止cpu运行的程序

setbp 设置断点

g 跳到代码段地址执行

s 单步执行(调试用)

r 复位

q 退出

接下里主要介绍系统停止命令,来测试看门狗是否有效,也就是使用h命令,使MCU停止运行,MCU停止运行之后,按照看门狗设计,没法喂狗,应该是能够复位重启的

我们通过观察LED指示灯的状态来判断系统是否重启:

视频如下:

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞哥玩嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值