亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

一種在不改變?cè)创a的情況下測(cè)試看門狗復(fù)位的方法

2023-05-31 10:28:09 來源:小飛哥玩嵌入式

什么是“看門狗”?

看門狗定時(shí)器(WDT,Watch Dog Timer)是單片機(jī)的一個(gè)組成部分,它實(shí)際上是一個(gè)計(jì)數(shù)器,一般給看門狗一個(gè)數(shù)字,程序開始運(yùn)行后看門狗開始倒計(jì)數(shù)。如果程序運(yùn)行正常,過一段時(shí)間CPU應(yīng)發(fā)出指令讓看門狗復(fù)位,重新開始倒計(jì)數(shù)。如果看門狗減到0就認(rèn)為程序沒有正常工作,強(qiáng)制整個(gè)系統(tǒng)復(fù)位。


(資料圖)

可以說有了“看門狗”的存在,你可以睡得更香了,代碼受到干擾或者“bug制造者”寫了一個(gè)錯(cuò)誤的代碼,異常跑飛了,“看門狗”能夠使系統(tǒng)復(fù)位,畢竟重啟能解各種疑雜癥

看門狗如何測(cè)試?

對(duì)于“看門狗”測(cè)試,首先我們要搞清除看門狗的工作流程,本章節(jié)不介紹如何代碼實(shí)現(xiàn)。

只需要,看門狗初始化->定時(shí)喂狗,如果超時(shí)沒有喂狗,那么狗就要干活了,也就是把你的系統(tǒng)重新復(fù)位運(yùn)行。

研發(fā)測(cè)試方法:

對(duì)于研發(fā)比較簡(jiǎn)單,一般初始化完不喂狗,或者除了main while(1)之外的地方,我們?cè)偃藶橹圃煲粋€(gè)while(1)死循環(huán),這樣就可以測(cè)試看門狗復(fù)位.

測(cè)試工程師測(cè)試方法

對(duì)于測(cè)試工程師來說,總不能拿著你研發(fā)自測(cè)的代碼去測(cè)試吧,雖然說單項(xiàng)測(cè)試沒問題,但是指不定正式固件會(huì)出什么幺蛾子~

所以測(cè)試工程師必要的話,必須是基于正式固件去測(cè)試

那么問題來了,看門狗是在異常情況下才會(huì)起作用,我們一般很難人為的去制造看門狗的異常,除非代碼確實(shí)有bug

好在“天無(wú)絕人之路”,jlink給了我們一種方法,一般我們用jlink多是調(diào)試仿真、下固件

安裝jlink的時(shí)候,其實(shí)還有很多工具可以用的

比如我們可以用jlink實(shí)現(xiàn)串口print功能

今天要介紹的是通過jlink命令工具來對(duì)MCU發(fā)送一些命令,這個(gè)工具叫J-Link Commander

先來連接到我們的目標(biāo)芯片

接下來我們就可以對(duì)MCU發(fā)送一些命令:

Mem讀內(nèi)存mem8讀8字節(jié)內(nèi)存mem16讀16字節(jié)內(nèi)存mem32讀32字節(jié)內(nèi)存w1寫8字節(jié)內(nèi)存w2寫16字節(jié)內(nèi)存w4寫32字節(jié)內(nèi)存h停止cpu運(yùn)行的程序setbp設(shè)置斷點(diǎn)g跳到代碼段地址執(zhí)行s單步執(zhí)行(調(diào)試用)r復(fù)位q退出

接下里主要介紹系統(tǒng)停止命令,來測(cè)試看門狗是否有效,也就是使用h命令,使MCU停止運(yùn)行,MCU停止運(yùn)行之后,按照看門狗設(shè)計(jì),沒法喂狗,應(yīng)該是能夠復(fù)位重啟的

我們通過觀察LED指示燈的狀態(tài)來判斷系統(tǒng)是否重啟:

審核編輯:湯梓紅

標(biāo)簽:

上一篇:當(dāng)前焦點(diǎn)!單片機(jī)學(xué)習(xí)筆記:電壓監(jiān)控型和看門狗型復(fù)位電路
下一篇:最后一頁(yè)