




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VxWorks應(yīng)用設(shè)計(jì)中科信軟培訓(xùn)中心六、VxWorks中斷和定時(shí)器6.1中斷設(shè)備向CPU發(fā)送中斷,通知CPU發(fā)生了某些事件加載用戶自定義的程序,在中斷到達(dá)時(shí)執(zhí)行該程序中斷服務(wù)程序不是一個(gè)任務(wù)設(shè)備上的板上定時(shí)器是一個(gè)常見的中斷源,可以通過它來理解中斷
中斷處理舉例
中斷向量表handler中斷號(hào)硬件中斷↗ISR包裝代碼Handler:SaveregistercallroutineRestoreregisterRET↗用戶ISRmyISR(){…}↗
設(shè)置中斷處理程序VxWorks提供函數(shù)intConnect(),它允許將指定的C函數(shù)與任意中斷相聯(lián)系STATUSintConnect(){VOIDFUNCPTR*vector;/*要聯(lián)系的中斷向量*/VOIDFUNCPTR*routine;/*中斷發(fā)生時(shí)要調(diào)用的函數(shù)*/intparameter;/*傳遞給中斷處理函數(shù)的參數(shù)*/}該函數(shù)將指定的C函數(shù)與指定的中斷向量相聯(lián)系,函數(shù)的地址存放在這個(gè)中斷向量中。當(dāng)發(fā)生中斷時(shí),系統(tǒng)調(diào)用該函數(shù)。
中斷堆棧大多數(shù)體系結(jié)構(gòu)的CPU的ISR使用相同的中斷堆棧中斷堆棧在系統(tǒng)啟動(dòng)時(shí)分配堆棧大小由宏ISR_STACK_SIZE控制,默認(rèn)值在configAll.h中定義堆棧必須足夠大,以保證能夠處理系統(tǒng)最壞情況下的中斷嵌套ISR沒有任務(wù)控制塊(TCB),并且所有的ISR共享一個(gè)堆棧
VxWorks中斷處理流程保存CPU寄存器從中斷控制器讀中斷向量號(hào)順序調(diào)用該中斷服務(wù)程序通知中斷控制器中斷服務(wù)程序結(jié)束恢復(fù)CPU寄存器返回
中斷和優(yōu)先級(jí)
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é)處理器的程序非法指令或總線錯(cuò)導(dǎo)致硬件異常時(shí),該任務(wù)被掛起,其他任務(wù)繼續(xù)執(zhí)行如果ISR沒有context被掛起,vxworks將在低端內(nèi)存保存對異常的描述,并重啟系統(tǒng)
如何使用ISR保持ISR盡量短,因?yàn)镮SR–會(huì)延遲低或相同優(yōu)先級(jí)的中斷–延遲所有的任務(wù)–調(diào)試起來比較困難避免在ISR中使用浮點(diǎn)指針操作盡量將有些工作放到任務(wù)中去完成–持續(xù)時(shí)間長的工作–不是非常重要的工作
中斷與任務(wù)間的通信共享存儲(chǔ)器和環(huán)緩沖區(qū)–ISR與任務(wù)共享變量、存儲(chǔ)器和環(huán)緩沖區(qū)信號(hào)量–ISR釋放信號(hào)量,任務(wù)等待接收信號(hào)量消息隊(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個(gè)入口參數(shù)使用具有系統(tǒng)級(jí)調(diào)試的機(jī)制進(jìn)行調(diào)試–WDBAgent–emulator6.2定時(shí)器系統(tǒng)時(shí)鐘中斷服務(wù)程序看門狗定時(shí)器輔助時(shí)鐘定時(shí)器板上的定時(shí)器會(huì)周期性地中斷CPU定時(shí)器使得用戶自定義的程序可以周期性地執(zhí)行,這對下列情況非常有用–輪詢硬件–檢查系統(tǒng)錯(cuò)誤VxWorks提供對兩種定時(shí)器的相同的接口–系統(tǒng)時(shí)鐘–輔助時(shí)鐘
系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘完成下列工作–增加ticks計(jì)數(shù)(使用tickGet()獲得計(jì)數(shù)值)–更新延時(shí)和超時(shí)計(jì)數(shù)器–檢查循環(huán)調(diào)度默認(rèn)的時(shí)鐘頻率是60HzsysClkRateSet()設(shè)置時(shí)鐘頻率sysClkRateGet()獲得時(shí)鐘頻率sysClkRateSet()通常在系統(tǒng)啟動(dòng)時(shí)進(jìn)行設(shè)置(VxSim方式下可以隨時(shí)設(shè)置)輔助時(shí)鐘相關(guān)函數(shù)sysAuxClkConnect()sysAuxClkRateGet()sysAuxClkRateSet()sysAuxClkEnable()sysAuxClkDisable()
看門狗定時(shí)器系統(tǒng)時(shí)鐘的一個(gè)用戶接口能夠使C程序在一個(gè)給定延時(shí)后開始執(zhí)行一旦延時(shí)超時(shí),指定的程序開始執(zhí)行作為系統(tǒng)ISR的一部分,要遵守ISR的編程要求
創(chuàng)建看門狗定時(shí)器創(chuàng)建一個(gè)看門狗定時(shí)器–WDOG_IDwdCreate()–返回wotchdogid或NULL或ERROR啟動(dòng)(或重啟)一個(gè)看門狗定時(shí)器STATUSwdStart(wdId,delay,pRoutine,parameter)wdId由wdCreate返回的watchdogIddelay要延時(shí)的tickspRoutine當(dāng)延時(shí)超時(shí)時(shí),要調(diào)用的程序parameter傳遞給程序的參數(shù)wdStart()可以在超時(shí)時(shí)運(yùn)行看門狗程序,要想周期性執(zhí)行,看門狗程序必須調(diào)用wdStart()自己重新啟動(dòng)
使用看門狗定時(shí)器使用看門狗定時(shí)器可以使一段程序周期性地執(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)錯(cuò)誤
停止看門狗定時(shí)器要取消原來已經(jīng)啟動(dòng)的看門狗定時(shí)器STATUSwdCancel(wdId)要?jiǎng)h除一個(gè)看門狗定時(shí)器(并取消原先啟動(dòng)的定時(shí)器)STATUSwdDelete(wdId)輪詢的實(shí)現(xiàn)任務(wù)級(jí)輪詢的實(shí)現(xiàn)
taskD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中物理 第二章 機(jī)械波 2 波速與波長、頻率的關(guān)系教學(xué)設(shè)計(jì)3 教科版選修3-4
- 7.2 運(yùn)動(dòng)的快慢 速度(教學(xué)設(shè)計(jì))-2024-2025滬粵版物理八年級(jí)下冊
- 遠(yuǎn)東宏信租賃鑄劍培訓(xùn)
- 九年級(jí)英語下冊 Unit 1 Asia Integrated skill and Study skills教學(xué)設(shè)計(jì) (新版)牛津版
- 2024-2025學(xué)年高中歷史 第五單元 第2課 拿破侖帝國的建立與封建制度的復(fù)辟教學(xué)設(shè)計(jì)1 新人教版選修2
- 七年級(jí)地理下冊 第八章 第四節(jié) 澳大利亞教學(xué)設(shè)計(jì) (新版)新人教版
- 2019商務(wù)星球版七年級(jí)下冊地理6.1《世界第一大洲》教學(xué)設(shè)計(jì)
- Unit 2 Know your body 第3課時(shí)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(三起)(2024)英語三年級(jí)下冊
- 月嫂上崗技巧培訓(xùn)課件
- 2023八年級(jí)英語下冊 Module 2 Experiences Unit 2 They have seen the Pyramids第三課時(shí)教學(xué)設(shè)計(jì) (新版)外研版
- 玩具照相機(jī)細(xì)分市場深度研究報(bào)告
- 人工智能算法與實(shí)踐-第16章 LSTM神經(jīng)網(wǎng)絡(luò)
- 中考監(jiān)考和考務(wù)人員培訓(xùn)手冊
- 數(shù)學(xué)史簡介課件可編輯全文
- 第22課《從局部抗戰(zhàn)到全國抗戰(zhàn)》 課件 統(tǒng)編版高中歷史中外歷史綱要上冊
- 浙江省A9協(xié)作體2023-2024學(xué)年高二下學(xué)期4月期中英語試題
- 醫(yī)療救助補(bǔ)助資金管理辦法
- 水電站110kV變電站接地電阻計(jì)算書
- 2025屆江蘇南京市鹽城市高三第二次模擬考試歷史試卷含解析
- 江蘇省靖江外國語學(xué)校2023-2024學(xué)年中考數(shù)學(xué)最后沖刺模擬試卷含解析
- 鼠疫的防治專題知識(shí)講座課件
評論
0/150
提交評論