版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
VxWorks應(yīng)用設(shè)計中科信軟培訓(xùn)中心六、VxWorks中斷和定時器6.1中斷設(shè)備向CPU發(fā)送中斷,通知CPU發(fā)生了某些事件加載用戶自定義的程序,在中斷到達時執(zhí)行該程序中斷服務(wù)程序不是一個任務(wù)設(shè)備上的板上定時器是一個常見的中斷源,可以通過它來理解中斷
中斷處理舉例
中斷向量表handler中斷號硬件中斷↗ISR包裝代碼Handler:SaveregistercallroutineRestoreregisterRET↗用戶ISRmyISR(){…}↗
設(shè)置中斷處理程序VxWorks提供函數(shù)intConnect(),它允許將指定的C函數(shù)與任意中斷相聯(lián)系STATUSintConnect(){VOIDFUNCPTR*vector;/*要聯(lián)系的中斷向量*/VOIDFUNCPTR*routine;/*中斷發(fā)生時要調(diào)用的函數(shù)*/intparameter;/*傳遞給中斷處理函數(shù)的參數(shù)*/}該函數(shù)將指定的C函數(shù)與指定的中斷向量相聯(lián)系,函數(shù)的地址存放在這個中斷向量中。當(dāng)發(fā)生中斷時,系統(tǒng)調(diào)用該函數(shù)。
中斷堆棧大多數(shù)體系結(jié)構(gòu)的CPU的ISR使用相同的中斷堆棧中斷堆棧在系統(tǒng)啟動時分配堆棧大小由宏ISR_STACK_SIZE控制,默認(rèn)值在configAll.h中定義堆棧必須足夠大,以保證能夠處理系統(tǒng)最壞情況下的中斷嵌套ISR沒有任務(wù)控制塊(TCB),并且所有的ISR共享一個堆棧
VxWorks中斷處理流程保存CPU寄存器從中斷控制器讀中斷向量號順序調(diào)用該中斷服務(wù)程序通知中斷控制器中斷服務(wù)程序結(jié)束恢復(fù)CPU寄存器返回
中斷和優(yōu)先級
ISR的使用限制ISR執(zhí)行完成之前,其它任務(wù)不能執(zhí)行ISR中不能調(diào)用某些VxWorks函數(shù),尤其是,ISR不能被阻塞–不能調(diào)用semTake()–不能調(diào)用malloc(),free()–不能調(diào)用I/O系統(tǒng)函數(shù)(如printf())–不能調(diào)用使用浮點協(xié)處理器的程序非法指令或總線錯導(dǎo)致硬件異常時,該任務(wù)被掛起,其他任務(wù)繼續(xù)執(zhí)行如果ISR沒有context被掛起,vxworks將在低端內(nèi)存保存對異常的描述,并重啟系統(tǒng)
如何使用ISR保持ISR盡量短,因為ISR–會延遲低或相同優(yōu)先級的中斷–延遲所有的任務(wù)–調(diào)試起來比較困難避免在ISR中使用浮點指針操作盡量將有些工作放到任務(wù)中去完成–持續(xù)時間長的工作–不是非常重要的工作
中斷與任務(wù)間的通信共享存儲器和環(huán)緩沖區(qū)–ISR與任務(wù)共享變量、存儲器和環(huán)緩沖區(qū)信號量–ISR釋放信號量,任務(wù)等待接收信號量消息隊列–ISR發(fā)送消息,任務(wù)等待接收消息,如果消息隊列滿,該消息被丟棄管道–ISR向管道寫消息,任務(wù)讀消息
調(diào)試中斷中斷處理程序可以調(diào)用logMsg()向系統(tǒng)輸出診斷信息logMsg(“foo=%d\n”,foo,2,3,4,5,6)向tLogTask發(fā)送請求為我們實現(xiàn)printf()的功能和printf()相似,但必須注意–參數(shù)必須為4字節(jié)–函數(shù)有6個入口參數(shù)使用具有系統(tǒng)級調(diào)試的機制進行調(diào)試–WDBAgent–emulator6.2定時器系統(tǒng)時鐘中斷服務(wù)程序看門狗定時器輔助時鐘定時器板上的定時器會周期性地中斷CPU定時器使得用戶自定義的程序可以周期性地執(zhí)行,這對下列情況非常有用–輪詢硬件–檢查系統(tǒng)錯誤VxWorks提供對兩種定時器的相同的接口–系統(tǒng)時鐘–輔助時鐘
系統(tǒng)時鐘系統(tǒng)時鐘完成下列工作–增加ticks計數(shù)(使用tickGet()獲得計數(shù)值)–更新延時和超時計數(shù)器–檢查循環(huán)調(diào)度默認(rèn)的時鐘頻率是60HzsysClkRateSet()設(shè)置時鐘頻率sysClkRateGet()獲得時鐘頻率sysClkRateSet()通常在系統(tǒng)啟動時進行設(shè)置(VxSim方式下可以隨時設(shè)置)輔助時鐘相關(guān)函數(shù)sysAuxClkConnect()sysAuxClkRateGet()sysAuxClkRateSet()sysAuxClkEnable()sysAuxClkDisable()
看門狗定時器系統(tǒng)時鐘的一個用戶接口能夠使C程序在一個給定延時后開始執(zhí)行一旦延時超時,指定的程序開始執(zhí)行作為系統(tǒng)ISR的一部分,要遵守ISR的編程要求
創(chuàng)建看門狗定時器創(chuàng)建一個看門狗定時器–WDOG_IDwdCreate()–返回wotchdogid或NULL或ERROR啟動(或重啟)一個看門狗定時器STATUSwdStart(wdId,delay,pRoutine,parameter)wdId由wdCreate返回的watchdogIddelay要延時的tickspRoutine當(dāng)延時超時時,要調(diào)用的程序parameter傳遞給程序的參數(shù)wdStart()可以在超時時運行看門狗程序,要想周期性執(zhí)行,看門狗程序必須調(diào)用wdStart()自己重新啟動
使用看門狗定時器使用看門狗定時器可以使一段程序周期性地執(zhí)行wdId=wdCreate();wdStart(wdId,DELAY_PERIOD,myWdIsr,0);voidmyWdIsr(param){doit(param);wdStart(wdId,DELAY_PERIOD,myWdIsr,0);}doit程序可以–輪詢某些硬件設(shè)備–解鎖某些任務(wù)–檢查系統(tǒng)是否出現(xiàn)錯誤
停止看門狗定時器要取消原來已經(jīng)啟動的看門狗定時器STATUSwdCancel(wdId)要刪除一個看門狗定時器(并取消原先啟動的定時器)STATUSwdDelete(wdId)輪詢的實現(xiàn)任務(wù)級輪詢的實現(xiàn)
taskD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公司解除與因合同欺詐員工勞動合同證明3篇
- 農(nóng)村農(nóng)業(yè)勞務(wù)用工合同(2025年度)勞務(wù)派遣服務(wù)協(xié)議
- 2024年中國電腦智能化熱處理控溫裝置市場調(diào)查研究報告
- 2025年度凍貨冷鏈物流與冷鏈倉儲服務(wù)合同
- 2025年度年度商標(biāo)轉(zhuǎn)讓與跨界合作專項合同3篇
- 2024年05月興業(yè)銀行總行數(shù)據(jù)中心安全條線招聘筆試歷年參考題庫附帶答案詳解
- 2024年中國板式輸送鏈?zhǔn)袌稣{(diào)查研究報告
- 2024年中國無油立式真空泵市場調(diào)查研究報告
- 2024年中國掌形儀市場調(diào)查研究報告
- 《小鼠胚胎干細胞高置信度lincRNAs的預(yù)測及其調(diào)控模式的研究》
- 政治-2025年八省適應(yīng)性聯(lián)考模擬演練考試暨2025年四川省新高考教研聯(lián)盟高三年級統(tǒng)一監(jiān)測試題和答案
- 2024年中國醫(yī)藥研發(fā)藍皮書
- 坍塌、垮塌事故專項應(yīng)急預(yù)案(3篇)
- 2024年融媒體中心事業(yè)單位考試工作人員另選錄用55人內(nèi)部選題庫及參考答案(研優(yōu)卷)
- 陜西省安康市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- WPS Office辦公軟件應(yīng)用教學(xué)教案
- 2024年時政熱點知識競賽試卷及答案(共四套)
- 幼兒園后勤主任年終總結(jié)
- 除顫儀使用護理查房
- 初級消防設(shè)施操作員實操題庫 (一)
- CURTIS1232-1234-1236-SE-SERIES交流控制器手冊
評論
0/150
提交評論