在嵌入式系統(tǒng)中為提高微型機(jī)系統(tǒng)的可靠性和安全性, 常用的方法就是使用“看門狗”。看門狗分硬件看門狗和軟件看門狗。硬件看門狗采用“看門狗”電路, 通過定時器, 對微型機(jī)任務(wù)即“喂狗”在運行時間上加以約束, 任務(wù)必須在最大指定時間范圍內(nèi)完成, 否則重啟系統(tǒng)。軟件看門狗采用處理器內(nèi)部定時器, 把任務(wù)的理論最大運行時間作為時間約束, 如果該任務(wù)超過了這個時間跨度, 則強(qiáng)制退出本次任務(wù)。上述看門狗采用的是單任務(wù)的順序機(jī)制, 容易實現(xiàn)。在多任務(wù)系統(tǒng)中情況稍為復(fù)雜, 如果每個任務(wù)都像單任務(wù)系統(tǒng)那樣,只要有一個任務(wù)正常工作并定期“喂狗”,看門狗定時器就不會溢出, 而只有所有任務(wù)都出現(xiàn)問題時, 定時器才會溢出。重慶師范大學(xué)葉幫利老師曾在Windows 系統(tǒng)中探討和解決了這個問題[ 1 ] , 在嵌入式系統(tǒng)中也有人曾談到過[ 2 ] , 但是卻沒有具體實現(xiàn)方法的敘述。
文中把u C / O S - I I 操作系統(tǒng)移植到PHILIPS 公司生產(chǎn)的LPC2132 內(nèi)核中,基于系統(tǒng)的消息機(jī)制和優(yōu)先級權(quán)限, 設(shè)置了一個優(yōu)先級最高的任務(wù)作為監(jiān)視器對微型機(jī)上運行的所有任務(wù)進(jìn)行監(jiān)控, 只要一個任務(wù)出現(xiàn)故障, 該監(jiān)視任務(wù)就延遲喂狗, 使定時器溢出, 重啟系統(tǒng), 以保障微型機(jī)及所有任務(wù)處于長期穩(wěn)定的運行狀態(tài)。
1 系統(tǒng)概述
1 . 1 硬件和開發(fā)環(huán)境簡介
把uC/OS-II 操作系統(tǒng)移植到LPC2132的開發(fā)板中。LPC2132 是一個支持實時仿真和跟蹤的32 位ARM7TDMI-STM 核微處理器,帶64kB 高速FLASH 存儲器,4 個通信接口, 2 個32 位定時器, 1 個10 位8 路ADC,2 個硬件接口,47 個GPIO 以及多達(dá)9個邊沿或電平觸發(fā)的外部中斷, 完全能滿足一般應(yīng)用程序及擴(kuò)展的需求。
uC/OS-II 是一個搶占式多任務(wù)實時操作系統(tǒng), 其源代碼公開、可移植性強(qiáng), 有著易用性、易開發(fā)性和普及性的特點。uC/OS- Ⅱ最多可以管理64 個任務(wù), 這些任務(wù)通常都是一個無限循環(huán)的函數(shù)。在目前的版本中, 保留了優(yōu)先級為0 、1 、2 、3 、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2 、O S _ L O W E S T _ P R I O - 1 、OS_LOWEST_PRIO 的任務(wù),所以用戶可以同時擁有5 6 個任務(wù), 足以滿足用戶設(shè)計的各種要求。
1 . 2 系統(tǒng)實現(xiàn)的功能
在多任務(wù)系統(tǒng)中, 往往希望有一個任務(wù)出問題時把該任務(wù)重啟, 而不重啟整個系統(tǒng), 以達(dá)到不影響其他關(guān)鍵任務(wù)運行的目的, 在多次重啟該任務(wù)無效時再重啟系統(tǒng)。當(dāng)系統(tǒng)的主程序出現(xiàn)錯誤或者系統(tǒng)硬件出現(xiàn)問題時重啟系統(tǒng)。基于以上分析設(shè)計的看門狗主要實現(xiàn)以下功能。
( 1 ) 當(dāng)某個任務(wù)出現(xiàn)異常時, 由軟件看門狗重啟該任務(wù)。
( 2 ) 當(dāng)多次重啟某一任務(wù)失敗時, 重啟系統(tǒng)。
( 3 ) 當(dāng)操作系統(tǒng)本身出現(xiàn)異常時, 或者系統(tǒng)硬件出現(xiàn)異常時, 由軟件看門狗或者是硬件看門狗重新啟動微處理器。
2 多任務(wù)看門狗監(jiān)控原理
結(jié)合LPC2132 內(nèi)置硬件看門狗和uC/O S - Ⅱ操作系統(tǒng), 設(shè)置了一個優(yōu)先級別最高的任務(wù)作為監(jiān)視器監(jiān)視各應(yīng)用任務(wù)是否正常運行, 該監(jiān)視器稱為軟件看門狗。該任務(wù)對每個被監(jiān)視任務(wù)都設(shè)定一個計時器, 被監(jiān)視任務(wù)在設(shè)定的時間內(nèi)對對應(yīng)的定時器定時清零, 稱為“喂軟狗”。在被監(jiān)視的任務(wù)都正常工作的情況下, 軟件看門狗對內(nèi)置硬件看門狗定時器周期性清零,稱為“喂狗”。如果被監(jiān)視任務(wù)群某個任務(wù)出現(xiàn)故障, 不能在設(shè)置的時間內(nèi)對軟件看門狗“喂軟狗”, 與之對應(yīng)的定時器溢出,系統(tǒng)內(nèi)核發(fā)送指令, 把該任務(wù)的堆棧地址指到其起始地址, 復(fù)位該任務(wù), 如果在設(shè)定的次數(shù)內(nèi)不能夠有效啟動該任務(wù), 則延時“喂狗”, 硬件看門狗計數(shù)器溢出, 重啟系統(tǒng)。另外當(dāng)監(jiān)視器任務(wù)本身出現(xiàn)故障時,也不能及時對看硬件看門狗定時器清零,重啟系統(tǒng)。
3 軟件實現(xiàn)
3 . 1 應(yīng)用任務(wù)與軟件看門狗之間的通信
在多任務(wù)軟件看門狗與各應(yīng)用任務(wù)間之間進(jìn)行信息傳遞時, 每個應(yīng)用任務(wù)都會對監(jiān)視器發(fā)送運行狀態(tài)消息, 監(jiān)視器任務(wù)也要對每個任務(wù)發(fā)送消息。在應(yīng)用任務(wù)較多的情況下, 如果采用信箱進(jìn)行通訊, 會造成大量無效操作, 也使得編程變得繁瑣, 所以在監(jiān)視器任務(wù)中采用消息隊列來實現(xiàn)與各應(yīng)用任務(wù)間的消息傳遞, 而在各應(yīng)用任務(wù)中設(shè)置兩個信箱, 一個用來對監(jiān)視器消息隊列發(fā)送消息, 一個用來接收監(jiān)視器任務(wù)消息隊列發(fā)送的消息。當(dāng)某個應(yīng)用任務(wù)在執(zhí)行出錯時,調(diào)用OSQPost()函數(shù)向監(jiān)視器任務(wù)消息隊列發(fā)送消息, 監(jiān)視器任務(wù)通過調(diào)用OSQPend()函數(shù)從消息隊列讀取該消息,然后調(diào)用OSMboxPost()函數(shù)向該應(yīng)用任務(wù)的消息接收信箱發(fā)送代表不同意義的消息,該任務(wù)調(diào)用OSMboxPend()函數(shù)從信箱中讀取該消息后執(zhí)行相應(yīng)的操作。
3 . 2 多任務(wù)軟件看門狗的實現(xiàn)
多任務(wù)看門狗通過檢查各應(yīng)用任務(wù)是否在規(guī)定的時間內(nèi)對其“喂軟狗”來監(jiān)測各任務(wù)的運行狀態(tài)。借助微處理器的定時器中斷機(jī)制, 為每個任務(wù)分配計時單元和運行標(biāo)志, 由定時中斷依據(jù)運行標(biāo)志狀態(tài)進(jìn)行獨立計時。當(dāng)系統(tǒng)中的某任務(wù)空閑時, 以小于“喂軟狗”設(shè)定的時間間隔為周期, 周期性地“喂軟狗”; 在該任務(wù)執(zhí)行時,預(yù)計執(zhí)行所需的最長耗時, 并用稍大于該最大耗時的時間間隔設(shè)置監(jiān)視器中定時器參數(shù), 同時中斷周期性“喂軟狗”模塊, 啟動監(jiān)視器任務(wù)中的定時器倒計數(shù)。當(dāng)該任務(wù)正常執(zhí)行完畢時, 發(fā)送信號“喂軟狗”,對定時器清零, 復(fù)位該任務(wù), 同時恢復(fù)周期性“喂軟狗”模塊; 當(dāng)該任務(wù)執(zhí)行出現(xiàn)異常時, 不能在設(shè)定的時間間隔內(nèi)對軟件看門狗清零, 使得監(jiān)視器中相應(yīng)的定時器溢出,監(jiān)視器任務(wù)通過內(nèi)核服務(wù)發(fā)送指令, 把該任務(wù)的堆棧地址指到其起始地址, 重啟該任務(wù), 同時累計其復(fù)位次數(shù), 把該任務(wù)的計時器清零。
4 結(jié)語
結(jié)合LPC2132 內(nèi)置硬件看門狗和uC/O S - Ⅱ操作系統(tǒng), 設(shè)計了一種能夠?qū)崿F(xiàn)多任務(wù)管理的軟件看門狗, 該看門狗不但能夠有效地監(jiān)視各應(yīng)用任務(wù), 也能夠在不影響其他任務(wù)正常運行的情況下, 重啟該任務(wù), 直至在多次重啟無效時, 才重啟系統(tǒng),達(dá)到了相互獨立的應(yīng)用任務(wù)之間不會過于牽制的目的。另外該看門狗也能在主程序和硬件出問題時自動重啟, 確保系統(tǒng)長時間穩(wěn)定運行。
上一篇:用中斷方式在嵌入式操作系統(tǒng)μC/OS-Ⅱ上實現(xiàn)多任務(wù)通信
下一篇:Bootloader中LCD硬件初始化和軟件驅(qū)動程序設(shè)計
推薦閱讀
史海拾趣
兆欣深知品質(zhì)和服務(wù)對于企業(yè)發(fā)展的重要性。他們始終堅持高品質(zhì)的生產(chǎn)標(biāo)準(zhǔn),確保每一件產(chǎn)品都符合客戶的期望。同時,兆欣還提供了周到的售前咨詢和售后服務(wù),為客戶提供了全方位的支持。這種以客戶為中心的經(jīng)營理念贏得了客戶的廣泛贊譽(yù)和信任。
DIOTECH公司成立于電子行業(yè)的黃金時期,憑借其創(chuàng)始人在半導(dǎo)體領(lǐng)域的深厚造詣,公司迅速在高性能處理器領(lǐng)域取得了技術(shù)突破。通過不斷優(yōu)化產(chǎn)品設(shè)計和生產(chǎn)工藝,DIOTECH的產(chǎn)品在性能和穩(wěn)定性上均達(dá)到了行業(yè)領(lǐng)先水平,逐漸贏得了市場的認(rèn)可。隨著智能手機(jī)的普及,DIOTECH的高性能處理器成為了市場上的搶手貨,公司的營收和市場份額均實現(xiàn)了快速增長。
為了進(jìn)一步提升市場份額和品牌影響力,DIOTECH公司開始加大市場拓展力度。通過參加國際電子展會、舉辦新品發(fā)布會等活動,公司成功吸引了全球范圍內(nèi)的客戶和合作伙伴的關(guān)注。同時,公司還加強(qiáng)了品牌建設(shè),通過一系列營銷活動提升了品牌知名度和美譽(yù)度。這些努力使得DIOTECH逐漸成為了電子行業(yè)內(nèi)的知名品牌。
隨著產(chǎn)品質(zhì)量的不斷提升和技術(shù)的不斷創(chuàng)新,Emmoco開始積極拓展市場。公司制定了詳細(xì)的市場拓展計劃,通過參加國際展會、舉辦技術(shù)研討會等方式,不斷提高品牌知名度和影響力。同時,Emmoco還積極與國內(nèi)外知名企業(yè)建立合作關(guān)系,共同開拓市場,實現(xiàn)互利共贏。這些舉措使得Emmoco的市場份額不斷擴(kuò)大,品牌影響力逐漸增強(qiáng)。
散分!同時尋找北京WINCE開發(fā)人員加入“嵌入式技術(shù)外包群” 幫朋友發(fā)布一下消息,請大家多多捧場哈! 如題!誠請在北京的WINCE技術(shù)高手加入“嵌入式技術(shù)外包群”,該群將不定期 發(fā)布一些外包信息! 群號:48348107… 查看全部問答∨ |
|
請問在USB HID minidriver中,如何斷定應(yīng)該采用直接方式讀寫還是采用緩沖方式? 讀寫方式是在創(chuàng)建設(shè)備對象的時候設(shè)定的,但是這個設(shè)備對象是由hidclass.sys創(chuàng)建的,minidriver怎么能知道是什么方式呢?… 查看全部問答∨ |
咱論壇 送的cortex-M3 開發(fā)板 LM3s 芯片 管腳連線圖有沒呀。。。提供的管腳比較亂 看不出來 gpio 連在哪了。。 請 版主 給提供下。。謝謝了… 查看全部問答∨ |
本人在用DSP做電機(jī)控制時,使用PID算法進(jìn)行位置環(huán),速度環(huán)雙閉環(huán)控制,出現(xiàn)如下問題: 1、單獨使用PID位置環(huán)算法無問題,能夠精確控制電機(jī)到指定位置 2、單獨使用PID速度環(huán)算法無問題,能夠精確控制電機(jī)到指定速度 3、但是當(dāng)我將PID位置環(huán)和速度 ...… 查看全部問答∨ |
/* Includes ------------------------------------------------------------------*/#include \"stm32f10x_lib.h\"#include \"stm32f10x_it.h\"/* Private typedef -----------------------------------------------------------*/typedef void( * ...… 查看全部問答∨ |
本帖最后由 paulhyde 于 2014-9-15 04:10 編輯 [ 本帖最后由 paulhyde 于 2013-7-22 07:57 編輯 ] … 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 面壁智能端側(cè)大模型首日上線,英特爾工程師聯(lián)合優(yōu)化實現(xiàn)2.2倍推理效率躍升
- 瞄準(zhǔn)車規(guī)級碳化硅,理想發(fā)表重要成果
- 車規(guī)級MCU國內(nèi)替代提速
- 博世新獲國內(nèi)頭部車企座艙域控項目定點
- 首款測量電動汽車電機(jī)溫度的傳感器問世,提升對磁鐵的保護(hù)以減少稀土的使用
- Arm開發(fā)出計算子系統(tǒng) 以加速汽車設(shè)計的下一代AI芯片的開發(fā)
- 福特汽車申請新專利 或?qū)崿F(xiàn)車庫定向音樂播放
- 泊車場景一定需要超聲波嗎?
- 同星新一代TC1055 Pro開啟車載網(wǎng)絡(luò)測試新時代
- 福特汽車申請新專利 或?qū)⑴鋫浒踩ㄗ粉櫹到y(tǒng)
- 免費體驗業(yè)界最快編譯速度&最好性能 Quartus II v15.0網(wǎng)頁版下載有禮!
- 看視頻贏京東卡 | PI無刷直流電機(jī)學(xué)習(xí)中心正式上線
- 免費申請 | SFH 4713B紅外LED樣片,體驗革新性IR:6技術(shù)
- 希望一月 愛上EEWORLD——論壇推廣月
- ADI 新一期《模擬對話》上線,免費下載ing!
- 有獎直播|TI Matter 解決方案助力智能家居創(chuàng)新
- 沁恒CH579M-R1開發(fā)板免費測評,豐富外設(shè)等你體驗
- 【EEWORLD第三十六屆】2012年03月社區(qū)明星人物揭曉!
- 閱讀TI工業(yè)應(yīng)用方案精彩專題,開啟任意寶箱,挑戰(zhàn)答題抽好禮!
- Solid Sands 推出用于SuperGuard C 庫安全驗證套件
- ROHM開設(shè)支持汽車“功能安全”設(shè)計的特設(shè)網(wǎng)頁
- 健康A(chǔ)pp推出三項新功能 watchOS 8增新監(jiān)測運動
- 蘋果推出Object Capture 新API 可把iPhone視頻內(nèi)容轉(zhuǎn)換為3D模型
- 堅守iOS14 蘋果將允許用戶自由選擇是否升級為iOS15
- 機(jī)器人大軍崛起!韓國成了領(lǐng)頭羊
- 掃地機(jī)器人市場前景廣闊 企業(yè)需不斷提升產(chǎn)品智能體驗
- 在人工智能舞臺上,機(jī)器人怎樣演好“男一號”?
- 美萍網(wǎng)絡(luò)技術(shù)有限公司研發(fā)出AI智能電銷機(jī)器人,適用于銷售行業(yè)
- 遠(yuǎn)大機(jī)器人為新一代人工智能創(chuàng)新加碼
- EVC中不能用的函數(shù)怎么辦??GetDIBits();
- PLC在線監(jiān)測控制云組態(tài)軟件SCADA
- Hercules視頻是不是有BUG啊
- 最傷老公的八句話(你已經(jīng)說了幾句或你老婆說了你幾句)
- 這個1毛錢大小的毫米波傳感器評估板值不值得玩?
- 簡易示波器(四)任意波形動態(tài)顯示
- 兩路并行音頻通過I2S 協(xié)議進(jìn)入fpga,下載板上后結(jié)果亂序
- 內(nèi)部晶振改為外部晶振,timer中斷是好的,但是串口發(fā)出信息外邊接收不到,高分求解
- 【TI DLP創(chuàng)意征集】+用DLP來看皮影
- VK1621B/VK1622完美替代兼容互換HT1621B/HT1622全部封裝片裸片/DICE/晶圓/邦定COB片等