www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘要:隨著智能手機及平板為代表的嵌入式設(shè)備的普及,對系統(tǒng)的可靠性提出較高的要求。以TI TMS320DM8168芯片為例,詳細介紹了Linux系統(tǒng)從U—Boot啟動、內(nèi)核啟動到文件

摘要:隨著智能手機及平板為代表的嵌入式設(shè)備的普及,對系統(tǒng)的可靠性提出較高的要求。以TI TMS320DM8168芯片為例,詳細介紹了Linux系統(tǒng)從U—Boot啟動、內(nèi)核啟動到文件系統(tǒng)加載及用戶程序啟動過程中,看門狗的啟用及管理,通過不同階段管理看門狗,可以保證系統(tǒng)在任意可能出現(xiàn)問題的階段,可以自動重啟以修復(fù)故障,從而有效提高系統(tǒng)的可靠性。

關(guān)鍵詞:Linux;看門狗;DM8168

引言

隨著智能終端及移動互聯(lián)網(wǎng)的發(fā)展,Linux系統(tǒng)被應(yīng)用到越來越多的嵌入式設(shè)備中,如移動通信基站、Android(基于Linux內(nèi)核)智能手機、智能手環(huán)等。不同領(lǐng)域的應(yīng)用都對Android/Linux系統(tǒng)的可靠性及可用性有嚴(yán)格的要求。在嵌入式系統(tǒng)中,CPU必須可靠工作,即使因為某種錯誤或異常進入錯誤狀態(tài),系統(tǒng)應(yīng)該可以自動復(fù)位,看門狗也可以在系統(tǒng)進入錯誤狀態(tài)后的一段時間內(nèi)重啟復(fù)位,以實現(xiàn)系統(tǒng)自動從故障恢復(fù)。

1 看門狗的概念

看門狗是一個進行累加計數(shù)的定時器,在其啟動后,如果在設(shè)定的時間間隔內(nèi)對定時器清零(俗稱“喂狗”操作),定時器就不會溢出,也不會產(chǎn)生復(fù)位信號;如果在設(shè)定的時間間隔內(nèi),沒有對定時器清零,定時器就會溢出產(chǎn)生復(fù)位信號,從而實現(xiàn)系統(tǒng)重啟。根據(jù)實現(xiàn)方式的不同,可以分為硬件看門狗和軟件看門狗。

硬件看門狗是利用定時器電路實現(xiàn),其輸出連接到電路的復(fù)位端,程序在設(shè)定間隔內(nèi)對定時器清零。因此程序正常工作時,定時器不會溢出;如果程序出現(xiàn)故障,未能在設(shè)定間隔周期內(nèi)執(zhí)行清零操作,就使得看門狗定時器溢出,產(chǎn)生復(fù)位信號并重啟系統(tǒng)。軟件看門狗原理上同硬件看門狗一樣,只是將硬件電路上的定時器用操作系統(tǒng)內(nèi)部的軟件定時器代替,這樣可以簡化硬件電路設(shè)計。但軟件定時器在可靠性方面不如硬件定時器,在一些異常的情形下,比如處理器或操作系統(tǒng)內(nèi)部發(fā)生故障時,會導(dǎo)致軟件定時器不可用,也就無法檢測到這些故障。

2 Linux系統(tǒng)對看門狗的支持

Linux內(nèi)核從1.3.51版本開始提供硬件、軟件看門狗的驅(qū)動支持。隨著內(nèi)核版本不斷更新與發(fā)展,Linux內(nèi)核對各種不同類型的硬件看門狗提供了廣泛的支持。根據(jù)訪問方式的不同,Linux系統(tǒng)下的設(shè)備驅(qū)動程序分為字符設(shè)備及塊設(shè)備。看門狗在Linux系統(tǒng)下作為字符設(shè)備來處理,/dev/watchdog是一個主設(shè)備號為10、從設(shè)備號為130的字符設(shè)備節(jié)點。

Linux系統(tǒng)下的硬件看門狗,必須有硬件電路支持,設(shè)備節(jié)點/dev/watchdog對應(yīng)著真實的物理設(shè)備,不同類型的硬件看門狗設(shè)備由相應(yīng)的硬件驅(qū)動管理。

軟件看門狗則由Linux內(nèi)核模塊通過定時器機制實現(xiàn),此時設(shè)備節(jié)點/dev/watchdog并不對應(yīng)真實的物理設(shè)備,只是為應(yīng)用提供了一個與操作硬件看門狗相同的接口。各種不同類型的硬件看門狗電路,不僅提供了驅(qū)動程序支持,還提供了一個基于定時器的純軟件看門狗驅(qū)動,其驅(qū)動程序的源碼位于Linux內(nèi)核源碼下面的/drivers/watchdog目錄。

與Linux下的軟件看門狗相比,硬件看門狗具有更高的可靠性?;贚inux內(nèi)核的定時器實現(xiàn)的軟件看門狗,當(dāng)內(nèi)核或中斷出現(xiàn)異常時,將會失效。而硬件看門狗由自身的硬件電路控制,獨立于內(nèi)核,無論當(dāng)前系統(tǒng)狀態(tài)如何,如果硬件看門狗在設(shè)定的時間間隔內(nèi)沒有被執(zhí)行寫操作,仍會重新啟動系統(tǒng)。

Linux系統(tǒng)下面的軟件、硬件看門狗對應(yīng)用程序而言是透明的。應(yīng)用程序操作軟件看門狗的方式如下:打開設(shè)備/dev/watchdog,在設(shè)定的時間間隔內(nèi)對/dev/watchdog設(shè)備執(zhí)行寫操作。在任意時刻,只能有一個看門狗驅(qū)動模塊被加載,管理/dev/watchdog設(shè)備節(jié)點。如果系統(tǒng)沒有硬件看門狗電路,可以加載軟件看門狗驅(qū)動模塊。

3 Linux系統(tǒng)下看門狗的訪問

前文提到,Linux系統(tǒng)將看門狗作為一個字符設(shè)備來管理。本節(jié)將以TI公司推出的高清視頻處理芯片TMS320DM8168(以下簡稱DM8168)芯片為例,介紹Linux下訪問及操作看門狗的邏輯層次。

DM8168芯片將高清多通道系統(tǒng)的所有捕獲、壓縮、顯示以及控制功能整合于同一芯片,芯片內(nèi)部集成了硬件看門狗,外圍連接電路如圖1所示。硬件看門狗溢出同時產(chǎn)生復(fù)位(Reset)及中斷信號(Interrupt),復(fù)位信號會復(fù)位整個芯片,中斷信號可以在捕獲到中斷事件后,在中斷處理函數(shù)中增加一些額外的操作(比如將收到的看門狗溢出中斷的時間寫進日志,然后再復(fù)位等)。

 

 

Linux系統(tǒng)訪問硬件接口需通過設(shè)備驅(qū)動程序接口實現(xiàn),硬件看門狗也不例外。

如圖2所示,Linux系統(tǒng)下操作看門狗需要以下3個層次:

 

 

①Hardware Layer-硬件層,指硬件設(shè)備,通常提供GPIO;

②Kernel Layer-內(nèi)核層,內(nèi)核通過設(shè)備驅(qū)動程序訪問并控制硬件設(shè)備;

③Usee Space-用戶空間,應(yīng)用程序通過內(nèi)核驅(qū)動提供的API接口(通常以打開文件或ioctl方式),提供訪問硬件設(shè)備的接口,比如打開看門狗(int fd = open(“/dev/wat chdog”,O_RDWR))。

4 Linux系統(tǒng)下看門狗的管理

Linux啟動過程依次為U—Boot、內(nèi)核及文件系統(tǒng),最后是應(yīng)用程序啟動。在Linux系統(tǒng)啟動過程中,啟用看門狗可以有效監(jiān)測系統(tǒng)狀態(tài),若異常導(dǎo)致看門狗溢出,系統(tǒng)會自動復(fù)位以試修復(fù)問題,從而提高系統(tǒng)的可靠性及健壯性。本節(jié)以DMS168開發(fā)板為例,介紹Linux各個啟動階段看門狗的管理。

4.1 U—Boot啟動階段

開發(fā)板上電后,執(zhí)行U—Boot的第一條指令,然后順序執(zhí)行U—Boot啟動函數(shù)。U—Boot啟動內(nèi)核的過程如下:

①硬件設(shè)備初始化。

②加載U—Boot第二階段代碼到RAM空間。

③設(shè)置好堆棧,跳轉(zhuǎn)到start_armboot函數(shù)入口。

④start_armboot是U—Boot執(zhí)行的第一個C語言函數(shù)。[!--empirenews.page--]

⑤初始化本階段使用的硬件設(shè)備。

⑥檢測系統(tǒng)內(nèi)存映射。

⑦將內(nèi)核從Flash讀取到RAM中。

⑧設(shè)置內(nèi)核啟動參數(shù),然后啟動硬件看門狗,通過訪問控制寄存器來實現(xiàn)。該階段可以設(shè)置看門狗超時溢出時間為120 s。以DM8168芯片為例(后面的代碼都是基于該芯片實現(xiàn)),相關(guān)代碼為:

__raw_writel(0xBBBB,WDT_WSPR);

__raw_writel(0x4444,WDT_WSPR);

__raw_writel(wdt_trgr_time,WDT_WTGR);

這樣如果后續(xù)的內(nèi)核解壓及啟動出錯,看門狗超時可以復(fù)位開發(fā)板以重啟,重新加載內(nèi)核并試圖修復(fù)。

⑨完成系統(tǒng)初始化工作,U—Boot進入主循環(huán)程序,處理用戶輸入的命令。在abortboot中,關(guān)閉看門狗,向控制寄存器依次寫入:

__raw_writel(0xAAAA,WDT_WSPR);

__raw_writel(0x5555,WDT_WSPR);

若收到用戶中斷,U—Boot自動啟動的命令后,關(guān)閉看門狗,以方便用戶調(diào)試U—Boot、設(shè)置內(nèi)核相關(guān)參數(shù)等信息。

⑩如果沒有收到用戶中斷命令,U—Boot會拷貝內(nèi)核鏡像并解壓內(nèi)核,開始啟動內(nèi)核調(diào)用。

4.2 內(nèi)核啟動階段

在U—Boot加載了內(nèi)核之后,系統(tǒng)就進入內(nèi)核啟動階段,此時,看門狗的管理控制也要由內(nèi)核來接管。內(nèi)核啟動主要包括內(nèi)核自解壓、注冊及加載硬件驅(qū)動程序、Flash分區(qū)等。

在內(nèi)核啟動時,內(nèi)核程序會注冊硬件看門狗的驅(qū)動程序,并執(zhí)行probe探針函數(shù),此時,內(nèi)核接管U—Boot階段的看門狗,即先關(guān)閉看門狗,然后再重新打開看門狗,并加載新的超時時長,此處設(shè)置wdt_trgr_time=120 s。

__raw_writel(0xAAAA,WDT_WSPR);

__raw_writel(0x5555,WDT_WSPR);

__raw_writel(0xBBBB,WDT_WSPR);

__raw_writel(0x4444,WDT_WSPR);

__raw_writel(wdt_trgr_time,WDT_WTGR);

這樣可以保證文件系統(tǒng)在掛載或解壓出錯時,看門狗沒有進行喂狗操作,從而導(dǎo)致120 s超時后重啟。

在注冊完硬件驅(qū)動程序之后,內(nèi)核會掛載根文件系統(tǒng)并進行解壓。

4.3 應(yīng)用程序啟動階段

文件系統(tǒng)啟動后,用戶的應(yīng)用進程也會開始啟動。在這個階段,通常會創(chuàng)建一個獨立的守護進程,來接管看門狗。守護進程啟動時,首先關(guān)閉內(nèi)核階段啟動的看門狗,并重新啟動看門狗設(shè)置超時時長,實現(xiàn)接管內(nèi)核階段看門狗的功能。在看門狗啟動后,守護進程可以周期性地進行喂狗操作,并通過心跳的方式同用戶進程通信,在收不到用戶進程的心跳包消息時,即停止喂狗操作,這樣看門狗會超時溢出導(dǎo)致系統(tǒng)重啟,以進行故障修復(fù)。

 

 

 

 

守護進程通過看門狗中斷響應(yīng)函數(shù),實現(xiàn)重啟系統(tǒng)等操作,以恢復(fù)系統(tǒng)可用性。

至此,Linux從U—Boot啟動直到應(yīng)用程序完成過程中,看門狗都有相應(yīng)的啟動及管理。

4.4 看門狗管理小結(jié)

Linux系統(tǒng)下,U—Boot啟動后打開硬件看門狗,保證內(nèi)核解壓及啟動出現(xiàn)異常時重啟;內(nèi)核啟動階段,接管U—Boot下的看門狗并設(shè)置時間,可以保證文件系統(tǒng)掛載、解壓及啟動出現(xiàn)異常時重啟系統(tǒng);在進入文件系統(tǒng)后,守護進程接管內(nèi)核階段的看門狗,并定期地執(zhí)行喂狗操作,這樣在用戶進程出現(xiàn)異常(退出)時,守護進程可以監(jiān)測到異常,停止喂狗操作,看門狗超時復(fù)位系統(tǒng)。嵌入式系統(tǒng)中,重啟是從故障中修復(fù)的最簡單有效的方法,通過在啟動的不同階段啟用硬件看門狗,可以有效保障系統(tǒng)異常時重啟。

5 DM8168看門狗的管理

除了前文提到的Linux系統(tǒng)下看門狗的基礎(chǔ)管理,DM8168芯片的硬件看門狗外圍輸出引腳,可以同時支持Reset和Interrupt信號,功能更加強大。

如果只是期望看門狗超時后能重啟復(fù)位板卡,參考前節(jié)提到的方法,依次在Linux啟動的各個階段啟用及管理看門狗即可,因為看門狗的溢出引腳直接連接電源及復(fù)位管理模塊。

此外,如果想在看門狗超時溢出時增加一些額外的處理,可以采用捕獲中斷信號的方法。具體流程如下:

①注冊硬件看門狗中斷處理函數(shù),實現(xiàn)程序為omap_irq=platform_get_resource(pdev,IORESOURCE_IRQ,0); //獲得中斷標(biāo)號

ret=request_irq(omap_irq,omap_wdt_irqhdl,0,pdev->name,wdev); //注冊中斷

其中omap_wdt_irqhdl為看門狗的中斷處理函數(shù)。

②在硬件看門狗中斷處理函數(shù)中可以增加一些附加的處理,需要注意的是,此時需要設(shè)置另外一組寄存器WDT_WDLY,以保證在復(fù)位前捕獲到中斷信號。

中斷處理函數(shù)omap_wdt_irqhdl的關(guān)鍵實現(xiàn)程序為:

 

 

采用此方法后,看門狗超時產(chǎn)生中斷信號,系統(tǒng)捕獲到中斷信號后自動觸發(fā)中斷響應(yīng)函數(shù),可以更靈活地處理(比如不復(fù)位系統(tǒng),保留現(xiàn)場以便定位問題)。

結(jié)語

本文以TI公司的TMS320DM8168芯片為例,詳細介紹了Linux系統(tǒng)從U—Boot啟動、內(nèi)核啟動到文件系統(tǒng)加載及用戶程序啟動過程中看門狗的啟用及管理,通過不同階段管理看門狗,可以保證系統(tǒng)在任何一個可能出現(xiàn)問題的階段,自動重啟以修復(fù)故障,從而有效提高系統(tǒng)的可靠性。在嵌入式設(shè)備越來越普及的今天,設(shè)備自恢復(fù)功能會具有極大的競爭力。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉