| Grob MJ1-LMN-0000 |
| 聯(lián)系人:吳 (先生) | 手機(jī):18030229050 |
|
電話: |
傳真: |
| 郵箱:1878187406@qq.com | 地址:廈門市海滄區(qū)滄湖東一里海景奧斯卡 |
Grob MJ1-LMN-0000Grob MJ1-LMN-0000 在用戶模式訪問RTOS服務(wù)由于非特權(quán)代碼不能禁用中斷,因此應(yīng)用代碼被迫使用RTOS服務(wù)來訪問共享資源。由于RTOS服務(wù)在特權(quán)模式下運(yùn)行,因此非特權(quán)任務(wù)必須通過Cortex-M提供的SVC機(jī)制切換回特權(quán)模式。SVC的行為類似中斷,但由CPU指令觸發(fā)。 在Cortex-M上,SVC指令使用一個8位參數(shù)來256個可能的RTOS服務(wù)。設(shè)計者決定非特權(quán)代碼可以使用的RTOS服務(wù)。例如,你可能不希望允許非特權(quán)任務(wù)終止其它任務(wù)(或其本身)。此外,這些服務(wù)都不允許禁用中斷,因?yàn)檫@將破壞在非特權(quán)模式下運(yùn)行代碼的目的。一旦調(diào)用,SVC指令跳轉(zhuǎn)到SVC異常處理程序。 在Cortex-M3上,SVC處理程序?qū)⒃黾蛹s1k字節(jié)的代碼,需要執(zhí)行75~125條CPU指令。因此,相同RTOS服務(wù),在非特權(quán)代碼中調(diào)用比特權(quán)模式調(diào)用需要更多的處理時間。 在非特權(quán)模式下運(yùn)行代碼還可以防止用戶代碼禁用中斷,從而減少了鎖定系統(tǒng)的機(jī)會。當(dāng)然,如果用戶代碼進(jìn)入無限循環(huán),特別是在高優(yōu)先級任務(wù)或ISR中時,鎖定仍然可能發(fā)生。在這種情況下,通過使用看門狗可以恢復(fù)。 進(jìn)程間通信 1、互斥量用于確保兩個進(jìn)程不同時訪問相同的數(shù)據(jù)。注意,互斥量駐留在RTOS內(nèi)存空間中,通過RTOS API,所有進(jìn)程可以訪問該互斥量。 2、需要訪問受保護(hù)資源的任務(wù)必須首先獲取互斥量。當(dāng)任務(wù)完成共享資源訪問后,互斥量將被釋放。沙漏表示可選超時,當(dāng)任務(wù)不希望永久等待所有者釋放互斥量時,可以使用超時機(jī)制。 3、信號量也可以用來指示數(shù)據(jù)可用。 4、進(jìn)程中的任務(wù)將數(shù)據(jù)存儲到共享內(nèi)存中,然后發(fā)出信號。 5、進(jìn)程B中的任務(wù)等待進(jìn)程A的信號。沙漏表示一個可選的超時,以避免永遠(yuǎn)等待信號。如果該信號未在規(guī)定的時間內(nèi)發(fā)生,則RTOS將恢復(fù)該任務(wù)。在這種情況下,任務(wù)知道共享區(qū)域中沒有存入任何東西。 6、如果沒有發(fā)生超時,進(jìn)程B確認(rèn)數(shù)據(jù)處理完成。 7、進(jìn)程A發(fā)信號量后,等待具有可選超時的確認(rèn)。 8、通信也可以使用RTOS的消息隊(duì)列機(jī)制。此時,從共享RAM區(qū)域動態(tài)分配緩沖區(qū),進(jìn)程A中的發(fā)送任務(wù)填充緩沖區(qū),并將指針發(fā)送給進(jìn)程B中的任務(wù)。 9、與信號量情況類似,等待進(jìn)程B中的任務(wù)確認(rèn),并一個可選的超時。 內(nèi)存和I/O訪問錯誤處理 進(jìn)程間可以通過共享內(nèi)存進(jìn)行通信,兩個進(jìn)程的MPU配置表中將出現(xiàn)相同的區(qū)域。 應(yīng)用中也可以包含具有完全權(quán)限的系統(tǒng)級任務(wù)和ISR,允許它們訪問所有內(nèi)存、外設(shè)或CPU。 當(dāng)違規(guī)發(fā)生時,系統(tǒng)的行為取決于應(yīng)用程序,是哪個任務(wù)違規(guī)。例如,如果違規(guī)是由圖形用戶界面(GUI)造成的,可以終止并重新啟動GUI,并且不會影響系統(tǒng)的其它部分。 但是,如果違規(guī)任務(wù)控制一個制動器,則異常處理程序可能需要在重啟任務(wù)之前立即停止制動器。理想情況下,在產(chǎn)品開發(fā)過程中會捕獲并糾正訪問違規(guī),否則,系統(tǒng)設(shè)計人員將需要評估所有可能的結(jié)果,并決定發(fā)生這種情況時該做什么。 MPU的工作是確保進(jìn)程中的任務(wù)只能訪問分配給它的內(nèi)存和外設(shè)。但是,如果任務(wù)試圖訪問允許區(qū)域以外的數(shù)據(jù)呢?MPU會觸發(fā)一個稱為內(nèi)存管理(MemManage)故障的CPU異常。 當(dāng)故障發(fā)生時,系統(tǒng)行為取決于應(yīng)用程序,但如何處理故障可能是很難確定的事情。首先,這些類型的故障應(yīng)該在開發(fā)過程中被檢測和糾正。然而,使用MPU的原因之一是為了防止發(fā)生的無效內(nèi)存或外設(shè)訪問,要么是因?yàn)橄到y(tǒng)驗(yàn)證期間未捕獲某些偶發(fā)情況,或者是未經(jīng)授權(quán)的訪問。 MemManage故障通常由RTOS處理。理想情況下,嵌入式系統(tǒng)有一些機(jī)制可以記錄和報告故障,以便在產(chǎn)品的下一個版本中修正。文件系統(tǒng)是記錄這些故障的好地方,當(dāng)然,還取決于故障處理程序。
Grob MJ1-LMN-0000 PM554-T PM554-R
|
| 版權(quán)聲明:以上所展示的信息由會員自行提供,內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由發(fā)布會員負(fù)責(zé)。機(jī)電之家對此不承擔(dān)任何責(zé)任。 友情提醒:為規(guī)避購買風(fēng)險,建議您在購買相關(guān)產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。 |
機(jī)電之家網(wǎng) - 機(jī)電行業(yè)權(quán)威網(wǎng)絡(luò)宣傳媒體
關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 會員助手 | 免費(fèi)鏈接Copyright 2026 jdzj.com All Rights Reserved??技術(shù)支持:機(jī)電之家 服務(wù)熱線:0571-87774297
網(wǎng)站經(jīng)營許可證:浙B2-20080178