版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VxWorks應(yīng)用設(shè)計(jì)中科信軟培訓(xùn)中心六、VxWorks中斷和定時器6.1中斷設(shè)備向CPU發(fā)送中斷,通知CPU發(fā)生了某些事件加載用戶自定義的程序,在中斷到達(dá)時執(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)用使用浮點(diǎn)協(xié)處理器的程序非法指令或總線錯導(dǎo)致硬件異常時,該任務(wù)被掛起,其他任務(wù)繼續(xù)執(zhí)行如果ISR沒有context被掛起,vxworks將在低端內(nèi)存保存對異常的描述,并重啟系統(tǒng)
如何使用ISR保持ISR盡量短,因?yàn)镮SR–會延遲低或相同優(yōu)先級的中斷–延遲所有的任務(wù)–調(diào)試起來比較困難避免在ISR中使用浮點(diǎn)指針操作盡量將有些工作放到任務(wù)中去完成–持續(xù)時間長的工作–不是非常重要的工作
中斷與任務(wù)間的通信共享存儲器和環(huán)緩沖區(qū)–ISR與任務(wù)共享變量、存儲器和環(huán)緩沖區(qū)信號量–ISR釋放信號量,任務(wù)等待接收信號量消息隊(duì)列–ISR發(fā)送消息,任務(wù)等待接收消息,如果消息隊(duì)列滿,該消息被丟棄管道–ISR向管道寫消息,任務(wù)讀消息
調(diào)試中斷中斷處理程序可以調(diào)用logMsg()向系統(tǒng)輸出診斷信息logMsg(“foo=%d\n”,foo,2,3,4,5,6)向tLogTask發(fā)送請求為我們實(shí)現(xiàn)printf()的功能和printf()相似,但必須注意–參數(shù)必須為4字節(jié)–函數(shù)有6個入口參數(shù)使用具有系統(tǒng)級調(diào)試的機(jī)制進(jìn)行調(diào)試–WDBAgent–emulator6.2定時器系統(tǒng)時鐘中斷服務(wù)程序看門狗定時器輔助時鐘定時器板上的定時器會周期性地中斷CPU定時器使得用戶自定義的程序可以周期性地執(zhí)行,這對下列情況非常有用–輪詢硬件–檢查系統(tǒng)錯誤VxWorks提供對兩種定時器的相同的接口–系統(tǒng)時鐘–輔助時鐘
系統(tǒng)時鐘系統(tǒng)時鐘完成下列工作–增加ticks計(jì)數(shù)(使用tickGet()獲得計(jì)數(shù)值)–更新延時和超時計(jì)數(shù)器–檢查循環(huán)調(diào)度默認(rèn)的時鐘頻率是60HzsysClkRateSet()設(shè)置時鐘頻率sysClkRateGet()獲得時鐘頻率sysClkRateSet()通常在系統(tǒng)啟動時進(jìn)行設(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()可以在超時時運(yùn)行看門狗程序,要想周期性執(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)輪詢的實(shí)現(xiàn)任務(wù)級輪詢的實(shí)現(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全環(huán)境衛(wèi)生責(zé)任制度
- 家居門店衛(wèi)生管理制度
- 衛(wèi)生紙節(jié)約制度
- 保安清潔區(qū)域衛(wèi)生制度
- 養(yǎng)老院興趣小組制度
- 企業(yè)員工績效考核評價制度
- 會議文件翻譯與國際化制度
- 2026年經(jīng)濟(jì)學(xué)統(tǒng)計(jì)方法與實(shí)證分析試題集
- 2026年國際貿(mào)易心理學(xué)研究題庫文化差異與心理行為的研究與應(yīng)用
- 2026年節(jié)能產(chǎn)品認(rèn)證知識測試題庫
- 初步設(shè)計(jì)評審收費(fèi)標(biāo)準(zhǔn)與流程說明
- 城市感知體系研究報(bào)告2025
- 包裝飲用水留樣制度規(guī)范
- 2026年成都錦江人才發(fā)展有限責(zé)任公司公開招聘成都市錦江區(qū)編外人員的備考題庫含答案詳解
- 私人供水協(xié)議書
- 2026年及未來5年市場數(shù)據(jù)中國水合肼行業(yè)市場深度分析及投資戰(zhàn)略數(shù)據(jù)分析研究報(bào)告
- 探空氣球課件
- 雨課堂學(xué)堂在線學(xué)堂云人類行為與社會環(huán)境內(nèi)蒙古大學(xué)單元測試考核答案
- 消防志愿隊(duì)培訓(xùn)
- 小麥栽培課件
- 左額顳枕頂急性硬膜下血腫
評論
0/150
提交評論