99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

系統(tǒng)看門狗WDOG1在i.MXRT系統(tǒng)啟動中的應(yīng)用及影響

大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是系統(tǒng)看門狗WDOG1在i.MXRT1xxx系統(tǒng)啟動中的應(yīng)用及影響

軟件看門狗模塊(WDOG)在 MCU 應(yīng)用里可以說是非常基礎(chǔ)的功能模塊。對于一個產(chǎn)品級的應(yīng)用程序,如果它沒有使能主控內(nèi)部的看門狗模塊,一般都不能算是一個合格的軟件設(shè)計。有的時候,硬件工程師覺得軟件看門狗不可靠,還會在板級設(shè)計里再加入外部看門狗電路。總之看門狗對于產(chǎn)品工作穩(wěn)定性具有很重要的意義。

最近有一個 i.MXRT 客戶注意到了芯片手冊 System Boot 章節(jié)里提及了 WDOG 應(yīng)用,想使能這個功能,并且要確認(rèn)該功能真實生效以及評估對后續(xù)應(yīng)用程序的影響。借助客戶的問題,我們來細(xì)聊下這個話題。

一、WDOG模塊簡介

首先我們來了解一下 i.MXRT1xxx 系列內(nèi)部的 WDOG 模塊,在i.MXRT1xxx 內(nèi)部 WDOG 模塊一共有三個(WDOG1/2/3),雖然 WDOG 本質(zhì)上就是個特殊功能定時器,但因為芯片設(shè)計時為其賦予的超時觸發(fā)行為不同,所以其應(yīng)用場合并不一樣。

1.1 系統(tǒng)看門狗WDOG1/2

WDOG1 和 WDOG2 屬于系統(tǒng)看門狗,前者用于系統(tǒng)級復(fù)位(產(chǎn)生 WDOG_RESET_B_DEB 信號給 SRC 模塊)防止系統(tǒng)發(fā)生異常,后者用于系統(tǒng) SNVS 域安全警報(不會產(chǎn)生復(fù)位效果)。不過從模塊寄存器角度,WDOG1 和 WDOG2 是一樣的,因此除了超時觸發(fā)行為外,它們其余方面特性是一樣的:


1. 模塊內(nèi)部兩個計數(shù)時鐘源是固定的,來自 ipg_clk_32k 以及 anatop_xtal32k_clk 。
2. 模塊內(nèi)部 8bit 定時器(Time-Out Counter)用于產(chǎn)生 WDOG_RESET_B_DEB 復(fù)位信號,計時精度固定為 0.5 秒,超時可設(shè)范圍為 0.5 秒到 128 秒。
3. 模塊內(nèi)部定時器(Power Down Counter)用于產(chǎn)生對外輸出的復(fù)位信號 WDOG_B,其超時時間固定為 16 秒。
4. 模塊對外輸出的信號最多有三個: WDOG_RST_B_DEB、WDOG_B、WDOG_ANY(僅 WDOG1)。
5. 模塊使能信號 WDOGx->WCR[WDE] 可多次設(shè)置(并不是一次復(fù)位期間僅可 write one once)。
6. 模塊配置寄存器與定時器計數(shù)值可直接修改。
7. 模塊 Time-Out Counter 默認(rèn)是關(guān)閉的,Power Down Counter 默認(rèn)是開啟的。

1.2 內(nèi)核看門狗WDOG3(4)

WDOG3 有時候又叫 RTWDOG(對于 RT1170,還存在用于默認(rèn) CM4 從核的 WDOG4),屬于內(nèi)核看門狗,主要用于復(fù)位內(nèi)核,防止程序陷入死循環(huán)。其模塊寄存器跟 WDOG1/2 完全不同,更接近于一般的定時器模塊設(shè)計:

1. 模塊內(nèi)部計數(shù)時鐘源有四種選擇,Bus clock / LPO clock / INTCLK / ERCLK 。
2. 模塊內(nèi)部 16bit 定時器(Time-Out Counter)用于產(chǎn)生內(nèi)核復(fù)位信號。
3. 模塊使能信號 WDOGx->CS[EN] 可多次設(shè)置(但是其屬于 write-once 屬性)。
4. 模塊配置寄存器 write-once bits 與定時器計數(shù)值需要特殊 unlock 時序才可以修改。
5. 模塊 Time-Out Counter 默認(rèn)是開啟的。

二、系統(tǒng)ROM里對WDOG的使用

i.MXRT1xxx 系列芯片上電默認(rèn)都是先執(zhí)行系統(tǒng) BootROM,在 BootROM 里會有對看門狗的處理。默認(rèn)情況下 BootROM 是不啟用看門狗做代碼執(zhí)行守護(hù)的,只有當(dāng)用戶燒寫了指定的 eFuse 位,看門狗功能才會生效。BootROM 并沒有使用默認(rèn)開啟的 WDOG3,而是將其關(guān)閉并打開了 WDOG1 作為看門狗。

2.1 看門狗使能

i.MXRT10xx 系列芯片 BootROM 看門狗在 eFuse 里配置如下,包含 eFuse 0x460[21] 使能位與 eFuse 0x6D0[15:13] 超時時間設(shè)置。

i.MXRT1160/1170 芯片 BootROM 看門狗在 eFuse 里配置如下,包含 eFuse 0x9A0[15] 使能位與 eFuse 0x9B0[2:0] 超時時間設(shè)置,以及多了 eFuse 0x9B0[5:3] 關(guān)于 WDOG_B 外部信號腳選擇設(shè)置。

當(dāng) Fuse 里使能了看門狗功能后,BootROM 對看門狗模塊的配置如下:

void ROM_WDOG_init(void)
{
    uint16_t timeout = get_timeout_value_from_fuse();

    WDOG1->WCR = (uint16_t)(WDOG_WCR_WT(timeout)
                           | WDOG_WCR_WDW_MASK
                           | WDOG_WCR_SRE_MASK
                           | WDOG_WCR_WDA_MASK
                           | WDOG_WCR_WDBG_MASK
                           | WDOG_WCR_SRS_MASK);

    WDOG1->WCR |= (uint16_t)WDOG_WCR_WDE_MASK;
}

2.2 看門狗作用

對于 i.MXRT10xx 系列,BootROM 看門狗主要用于 Serial Downloader 分支程序下(SDP 模式 BT_MODE = 2'b01,或者 Device Boot 模式 BT_MODE = 2'bx0 下啟動失敗進(jìn)入了 Serial Downloader)檢測與主機(jī)通訊情況,只要在設(shè)置的超時時間里沒有通信交互行為,看門狗就會復(fù)位整個系統(tǒng)(并不是單次通信就可以的,任意超時時間內(nèi)都得保持交互)。如果在 Device Boot 模式下能夠正常啟動程序,則看門狗不會被使能。

對于 i.MXRT1160/1170 系列,BootROM 看門狗不僅在 Serial Downloader 分支程序中有效,其在 Device Boot 模式下(BT_MODE = 2'bx0)也同樣被使能了,這樣做主要有兩個用意:

用意1: 如果因板級電路干擾導(dǎo)致首次啟動程序失敗,BootROM 正常是直接跳轉(zhuǎn)到了 SDP 模式不會再做啟動程序行為。但是使能了看門狗,則在 SDP 模式下等待超時時間后系統(tǒng)復(fù)位會重新嘗試啟動程序,這樣不斷嘗試直到板級干擾消失。

用意2: 如果啟動程序成功,BootROM 會直接跳轉(zhuǎn)到目標(biāo)應(yīng)用程序,但無法檢驗?zāi)繕?biāo)程序是否能夠正常執(zhí)行。但是使能了看門狗,如果應(yīng)用程序不對看門狗做有效處理,系統(tǒng)還是會復(fù)位回來,這樣相當(dāng)于做了應(yīng)用程序是否執(zhí)行的驗證。

三、WDOG使能后對i.MXRT開發(fā)的影響

現(xiàn)在回到文章開頭提到的客戶問題,如何判斷 BootROM 中 WDOG 已經(jīng)生效了,這個其實特別簡單,在 SDP 模式下插上 USB 線,在資源管理器里觀察是不是有 HID 設(shè)備每隔一段時間就會重新枚舉一次,沒錯就是 WDOG 搗的鬼。

那么對于應(yīng)用程序的開發(fā),有什么注意事項呢?對于 i.MXRT10xx 其實沒有任何影響,而對于 i.MXRT1160/1170,則必須在應(yīng)用程序里增加對 WDOG1 的處理。在恩智浦提供的頭文件 system_MIMXRT1xxx.c 文件里 SystemInit() 函數(shù)中其實有關(guān)于看門狗相關(guān)代碼,默認(rèn)是將全部的看門狗都關(guān)一遍(DISABLE_WDOG=1),這部分代碼對于 i.MXRT10xx 程序是可以不做的,但是對于 i.MXRT1160/1170 就必須要做了。

至此,系統(tǒng)看門狗WDOG1在i.MXRT1xxx系統(tǒng)啟動中的應(yīng)用及影響痞子衡便介紹完畢了,掌聲在哪里~~~

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關(guān)注 41
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 国产精品高潮呻吟av久久动漫 | 国产精品久久久久久一区二区三区 | 久久久污 | 亚洲欧美国产精品久久久久 | 久久精品国产一区二区三区四区 | 国产视频精品xxxx | 久久亚洲美女视频 | 日韩精品视频在线观看视频 | 中文字幕色偷偷人妻久久 | 日本成人久久久 | 藏精阁成人免费观看在线视频 | 国产熟妇乱子伦视频在线观看 | 亚洲一区二区精品 | 影音先锋亚洲熟女av网 | 视频精品中文字幕一区二区 | 亚洲精品综合网 | 成人免费区 | 农村少妇无套内谢粗又长 | 日本成人综合 | 国产传媒第一页 | av视屏在线 | 亚洲精品乱码久久久久膏 | 中文字日产乱码六区中国有限公司 | 亚洲欧美在线播放 | 免费日韩毛片 | 国产女人在线75视频 | 国产欧美一区二区白浆黑人 | 黑人把女人弄到高潮a片 | 成人欧美一区二区三区A片 亚洲精品成人网站在线 | 在线观看国产中文字幕 | 精品国产伦一区二区三区 | 精品无人码麻豆乱码1区2区 | 精品国产入口麻豆 | 高级毛片| 综合色在线观看 | 亚洲综合憿情五月丁香五月网 | 亚洲欧美日韩自偷自拍 | 熟妇人妻无乱码中文字幕 | 亚洲欧美日韩人成在线播放 | 亚洲精品成人三区 | 4虎最新地址 |