資料介紹
隨著嵌入式技術(shù)的發(fā)展,實(shí)時(shí)操作系統(tǒng)RTOS(Real Time Operating System)被越來越多地應(yīng)用在嵌入式系統(tǒng)中,但是對現(xiàn)有基于軟件實(shí)現(xiàn)的RTOS,單純依靠改進(jìn)調(diào)度算法已經(jīng)不能使系統(tǒng)的實(shí)時(shí)性有很大提高。為提高系統(tǒng)的響應(yīng)能力,國內(nèi)外一些研究機(jī)構(gòu)提出RTOS硬化的方法,并開始做這方面的研究工作[1]。目前,軟件硬化常用的有兩種方法:(1)微程序方式,特點(diǎn)是成本較低,方便靈活;(2)組合邏輯方式,特點(diǎn)是速度快、可靠性高,隨著大規(guī)模集成電路的發(fā)展,這種方式逐漸顯示出優(yōu)越性[2]。信號量管理是RTOS中頻繁運(yùn)行的程序段之一,如果將這一部分用硬件實(shí)現(xiàn),對提高機(jī)器的速度將有很明顯的效果。本文采用組合邏輯方式參照μC/OS-II將信號量管理及ECB管理硬化到一片芯片上,作為獨(dú)立的模塊與處理器并行工作。
1 信號量管理的工作原理
μC/OS-II中信號量主要數(shù)據(jù)結(jié)構(gòu)由兩部分組成:(1)信號量的計(jì)數(shù)值Cnt。當(dāng)數(shù)值為正時(shí)用于記錄可使用的資源數(shù),當(dāng)數(shù)值為負(fù),其絕對值表示等待當(dāng)前信號量的任務(wù)個(gè)數(shù);(2)等待該信號量的任務(wù)列表。信號量的基本數(shù)據(jù)結(jié)構(gòu)需要申請一個(gè)ECB來存儲(chǔ)。一個(gè)任務(wù)或ISR可以通過ECB向另外的任務(wù)發(fā)信號,一個(gè)任務(wù)可以等待另一個(gè)任務(wù)或中斷服務(wù)子程序給它發(fā)送信號,多個(gè)任務(wù)可同時(shí)等待同一個(gè)事件的發(fā)生[3]。當(dāng)事件發(fā)生后,等待該事件的優(yōu)先級最高的任務(wù)進(jìn)入就緒狀態(tài),觸發(fā)一次任務(wù)調(diào)度[3]。任務(wù)或者中斷服務(wù)子程序都可以給ECB發(fā)信號,對ECB進(jìn)行操作。
信號量管理的工作原理框圖如圖1所示。信號量管理模塊以及事件控制塊管理都是獨(dú)立于CPU的邏輯結(jié)構(gòu),都可以直接從數(shù)據(jù)總線上獲得數(shù)據(jù)信息進(jìn)行處理,在信號量管理模塊與ECB的存儲(chǔ)模塊間建立一條數(shù)據(jù)通路,在不增加總線負(fù)擔(dān)的情況下加快二者間的通信。這些硬件邏輯獨(dú)立于CPU工作,減少了CPU的工作,從而提高系統(tǒng)的響應(yīng)能力。

2 信號量管理的硬件設(shè)計(jì)與實(shí)現(xiàn)
2.1 ECB的設(shè)計(jì)與實(shí)現(xiàn)
ECB是實(shí)現(xiàn)信號量管理的基本數(shù)據(jù)結(jié)構(gòu),因此在設(shè)計(jì)實(shí)現(xiàn)信號量管理之前,要先完成ECB管理的設(shè)計(jì)與實(shí)現(xiàn)。本系統(tǒng)中ECB的結(jié)構(gòu)參照μC/OS-II中ECB的結(jié)構(gòu)設(shè)計(jì)。每個(gè)ECB存儲(chǔ)單元包含一個(gè)EventType(事件類型),用于標(biāo)記當(dāng)前ECB被分配給信號量、互斥型信號量、郵箱還是消息隊(duì)列;當(dāng)一個(gè)ECB被分配給信號量時(shí),Cnt做為信號量的計(jì)數(shù)器;ECB中的等待表lut用于存儲(chǔ)等待當(dāng)前信號量任務(wù)的優(yōu)先級(μC/OS-II中沒有兩個(gè)任務(wù)有相同的優(yōu)先級)[3]。
ECB中等待表硬件實(shí)現(xiàn)的結(jié)構(gòu)示意圖如圖2所示。等待表的結(jié)構(gòu)類似一個(gè)8行8列的矩陣,存儲(chǔ)單元編號從00~77。當(dāng)一個(gè)任務(wù)在申請當(dāng)前信號量而沒有獲得時(shí),應(yīng)將當(dāng)前任務(wù)設(shè)置為等待狀態(tài),令Wr有效,以申請?jiān)撔盘柫咳蝿?wù)的優(yōu)先級為地址,進(jìn)行譯碼,選通相應(yīng)單元后再進(jìn)行寫1操作。例如,申請?jiān)撔盘柫康娜蝿?wù)優(yōu)先級Sid為111111時(shí),對其進(jìn)行譯碼,高三位行地址譯碼為10000000,低三位列地址譯碼為10000000,選中77單元向其寫入1,則優(yōu)先級為111111的任務(wù)進(jìn)入等待狀態(tài)。若要將一個(gè)處于等待表中的任務(wù)刪除,令De有效,同樣,根據(jù)地址線選通某一存儲(chǔ)單元,向單元內(nèi)寫0,從而刪除某一處于等待狀態(tài)的任務(wù)。在控制電路中設(shè)置EventGrp 8位寄存器,用于記錄當(dāng)前各行中是否有等待任務(wù);如圖2所示,第i行中某一位置為1,EventGrp(i)=1,圖中狀態(tài)EventGrp(7)=1、EventGrp(6)=1、EventGrp(0)=0。Rd有效時(shí),控制電路根據(jù)EventGrp采用一定算法生成優(yōu)先級的高三位;根據(jù)EventGrp讀出某行后生成優(yōu)先級低三位;下一時(shí)鐘送出最高優(yōu)先級。以上為對等待表進(jìn)行基本讀寫操作的過程。
1 信號量管理的工作原理
μC/OS-II中信號量主要數(shù)據(jù)結(jié)構(gòu)由兩部分組成:(1)信號量的計(jì)數(shù)值Cnt。當(dāng)數(shù)值為正時(shí)用于記錄可使用的資源數(shù),當(dāng)數(shù)值為負(fù),其絕對值表示等待當(dāng)前信號量的任務(wù)個(gè)數(shù);(2)等待該信號量的任務(wù)列表。信號量的基本數(shù)據(jù)結(jié)構(gòu)需要申請一個(gè)ECB來存儲(chǔ)。一個(gè)任務(wù)或ISR可以通過ECB向另外的任務(wù)發(fā)信號,一個(gè)任務(wù)可以等待另一個(gè)任務(wù)或中斷服務(wù)子程序給它發(fā)送信號,多個(gè)任務(wù)可同時(shí)等待同一個(gè)事件的發(fā)生[3]。當(dāng)事件發(fā)生后,等待該事件的優(yōu)先級最高的任務(wù)進(jìn)入就緒狀態(tài),觸發(fā)一次任務(wù)調(diào)度[3]。任務(wù)或者中斷服務(wù)子程序都可以給ECB發(fā)信號,對ECB進(jìn)行操作。
信號量管理的工作原理框圖如圖1所示。信號量管理模塊以及事件控制塊管理都是獨(dú)立于CPU的邏輯結(jié)構(gòu),都可以直接從數(shù)據(jù)總線上獲得數(shù)據(jù)信息進(jìn)行處理,在信號量管理模塊與ECB的存儲(chǔ)模塊間建立一條數(shù)據(jù)通路,在不增加總線負(fù)擔(dān)的情況下加快二者間的通信。這些硬件邏輯獨(dú)立于CPU工作,減少了CPU的工作,從而提高系統(tǒng)的響應(yīng)能力。

2 信號量管理的硬件設(shè)計(jì)與實(shí)現(xiàn)
2.1 ECB的設(shè)計(jì)與實(shí)現(xiàn)
ECB是實(shí)現(xiàn)信號量管理的基本數(shù)據(jù)結(jié)構(gòu),因此在設(shè)計(jì)實(shí)現(xiàn)信號量管理之前,要先完成ECB管理的設(shè)計(jì)與實(shí)現(xiàn)。本系統(tǒng)中ECB的結(jié)構(gòu)參照μC/OS-II中ECB的結(jié)構(gòu)設(shè)計(jì)。每個(gè)ECB存儲(chǔ)單元包含一個(gè)EventType(事件類型),用于標(biāo)記當(dāng)前ECB被分配給信號量、互斥型信號量、郵箱還是消息隊(duì)列;當(dāng)一個(gè)ECB被分配給信號量時(shí),Cnt做為信號量的計(jì)數(shù)器;ECB中的等待表lut用于存儲(chǔ)等待當(dāng)前信號量任務(wù)的優(yōu)先級(μC/OS-II中沒有兩個(gè)任務(wù)有相同的優(yōu)先級)[3]。
ECB中等待表硬件實(shí)現(xiàn)的結(jié)構(gòu)示意圖如圖2所示。等待表的結(jié)構(gòu)類似一個(gè)8行8列的矩陣,存儲(chǔ)單元編號從00~77。當(dāng)一個(gè)任務(wù)在申請當(dāng)前信號量而沒有獲得時(shí),應(yīng)將當(dāng)前任務(wù)設(shè)置為等待狀態(tài),令Wr有效,以申請?jiān)撔盘柫咳蝿?wù)的優(yōu)先級為地址,進(jìn)行譯碼,選通相應(yīng)單元后再進(jìn)行寫1操作。例如,申請?jiān)撔盘柫康娜蝿?wù)優(yōu)先級Sid為111111時(shí),對其進(jìn)行譯碼,高三位行地址譯碼為10000000,低三位列地址譯碼為10000000,選中77單元向其寫入1,則優(yōu)先級為111111的任務(wù)進(jìn)入等待狀態(tài)。若要將一個(gè)處于等待表中的任務(wù)刪除,令De有效,同樣,根據(jù)地址線選通某一存儲(chǔ)單元,向單元內(nèi)寫0,從而刪除某一處于等待狀態(tài)的任務(wù)。在控制電路中設(shè)置EventGrp 8位寄存器,用于記錄當(dāng)前各行中是否有等待任務(wù);如圖2所示,第i行中某一位置為1,EventGrp(i)=1,圖中狀態(tài)EventGrp(7)=1、EventGrp(6)=1、EventGrp(0)=0。Rd有效時(shí),控制電路根據(jù)EventGrp采用一定算法生成優(yōu)先級的高三位;根據(jù)EventGrp讀出某行后生成優(yōu)先級低三位;下一時(shí)鐘送出最高優(yōu)先級。以上為對等待表進(jìn)行基本讀寫操作的過程。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 開源硬件信號量在行動(dòng)
- ThreadX(六)------信號量semaphore
- FreeRTOS信號量 & ESP32實(shí)戰(zhàn)
- 嵌入式操作系統(tǒng)FreeRTOS的原理與移植實(shí)現(xiàn)
- 安全關(guān)鍵的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核 5次下載
- 解析操作系統(tǒng)的概念、結(jié)構(gòu)和機(jī)制 8次下載
- LINUX內(nèi)核的信號量設(shè)計(jì)與實(shí)現(xiàn) 18次下載
- LINUX內(nèi)核的信號量設(shè)計(jì)與實(shí)現(xiàn) 5次下載
- uCOS信號量源碼的詳細(xì)資料分析 7次下載
- 硬件實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì) 1次下載
- 基于新信號量策略的實(shí)時(shí)提升技術(shù)分析 0次下載
- BenOS實(shí)時(shí)操作系統(tǒng)解密 5次下載
- Linux操作系統(tǒng)信號量機(jī)制的實(shí)時(shí)化改造 18次下載
- VXWORKS實(shí)時(shí)操作系統(tǒng)中信號量用于多任務(wù)同步與互斥的討論
- 嵌入式操作系統(tǒng)的內(nèi)核研究
- 深度解析全球操作系統(tǒng)格局 3.4k次閱讀
- 詳解實(shí)時(shí)操作系統(tǒng)和非實(shí)時(shí)操作系統(tǒng) 6.7k次閱讀
- FreeRTOS信號量的使用與實(shí)例 4.2k次閱讀
- 什么是實(shí)時(shí)操作系統(tǒng)(RTOS) 8.4k次閱讀
- FreeRTOS:一個(gè)迷你的實(shí)時(shí)操作系統(tǒng)內(nèi)核 1.7k次閱讀
- Free RTOS的互斥信號量 2k次閱讀
- Free RTOS的計(jì)數(shù)型信號量 2k次閱讀
- FreeRTOS的二值信號量 2.4k次閱讀
- freeRTOS中最常用到的信號量有哪些 3.1k次閱讀
- FreeRTOS信號量使用教程 4.2k次閱讀
- 淺談鴻蒙內(nèi)核源碼的信號量運(yùn)作原理 2.1k次閱讀
- 嵌入式μC/OS-II系統(tǒng)中基于ECB基本存儲(chǔ)單元實(shí)現(xiàn)信號量管理的設(shè)計(jì) 1.7k次閱讀
- 對實(shí)時(shí)操作系統(tǒng)特性的討論 5.8k次閱讀
- 簡單介紹信號與信號量 1w次閱讀
- 如何安裝實(shí)時(shí)操作系統(tǒng)RTOS 6.8k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊
- 3.00 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管BC817數(shù)據(jù)手冊
- 2.51 MB | 次下載 | 免費(fèi)
- 3MDD品牌三極管D882數(shù)據(jù)手冊
- 3.49 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
- 3.26 MB | 次下載 | 免費(fèi)
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
- 3.09 MB | 次下載 | 免費(fèi)
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
- 2.32 MB | 次下載 | 免費(fèi)
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動(dòng)汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費(fèi)
- 2NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 3PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 22次下載 | 免費(fèi)
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論