資料介紹
隨著嵌入式技術的發(fā)展,實時操作系統(tǒng)RTOS(Real Time Operating System)被越來越多地應用在嵌入式系統(tǒng)中,但是對現(xiàn)有基于軟件實現(xiàn)的RTOS,單純依靠改進調度算法已經(jīng)不能使系統(tǒng)的實時性有很大提高。為提高系統(tǒng)的響應能力,國內外一些研究機構提出RTOS硬化的方法,并開始做這方面的研究工作[1]。目前,軟件硬化常用的有兩種方法:(1)微程序方式,特點是成本較低,方便靈活;(2)組合邏輯方式,特點是速度快、可靠性高,隨著大規(guī)模集成電路的發(fā)展,這種方式逐漸顯示出優(yōu)越性[2]。信號量管理是RTOS中頻繁運行的程序段之一,如果將這一部分用硬件實現(xiàn),對提高機器的速度將有很明顯的效果。本文采用組合邏輯方式參照μC/OS-II將信號量管理及ECB管理硬化到一片芯片上,作為獨立的模塊與處理器并行工作。
1 信號量管理的工作原理
μC/OS-II中信號量主要數(shù)據(jù)結構由兩部分組成:(1)信號量的計數(shù)值Cnt。當數(shù)值為正時用于記錄可使用的資源數(shù),當數(shù)值為負,其絕對值表示等待當前信號量的任務個數(shù);(2)等待該信號量的任務列表。信號量的基本數(shù)據(jù)結構需要申請一個ECB來存儲。一個任務或ISR可以通過ECB向另外的任務發(fā)信號,一個任務可以等待另一個任務或中斷服務子程序給它發(fā)送信號,多個任務可同時等待同一個事件的發(fā)生[3]。當事件發(fā)生后,等待該事件的優(yōu)先級最高的任務進入就緒狀態(tài),觸發(fā)一次任務調度[3]。任務或者中斷服務子程序都可以給ECB發(fā)信號,對ECB進行操作。
信號量管理的工作原理框圖如圖1所示。信號量管理模塊以及事件控制塊管理都是獨立于CPU的邏輯結構,都可以直接從數(shù)據(jù)總線上獲得數(shù)據(jù)信息進行處理,在信號量管理模塊與ECB的存儲模塊間建立一條數(shù)據(jù)通路,在不增加總線負擔的情況下加快二者間的通信。這些硬件邏輯獨立于CPU工作,減少了CPU的工作,從而提高系統(tǒng)的響應能力。
2 信號量管理的硬件設計與實現(xiàn)
2.1 ECB的設計與實現(xiàn)
ECB是實現(xiàn)信號量管理的基本數(shù)據(jù)結構,因此在設計實現(xiàn)信號量管理之前,要先完成ECB管理的設計與實現(xiàn)。本系統(tǒng)中ECB的結構參照μC/OS-II中ECB的結構設計。每個ECB存儲單元包含一個EventType(事件類型),用于標記當前ECB被分配給信號量、互斥型信號量、郵箱還是消息隊列;當一個ECB被分配給信號量時,Cnt做為信號量的計數(shù)器;ECB中的等待表lut用于存儲等待當前信號量任務的優(yōu)先級(μC/OS-II中沒有兩個任務有相同的優(yōu)先級)[3]。
ECB中等待表硬件實現(xiàn)的結構示意圖如圖2所示。等待表的結構類似一個8行8列的矩陣,存儲單元編號從00~77。當一個任務在申請當前信號量而沒有獲得時,應將當前任務設置為等待狀態(tài),令Wr有效,以申請該信號量任務的優(yōu)先級為地址,進行譯碼,選通相應單元后再進行寫1操作。例如,申請該信號量的任務優(yōu)先級Sid為111111時,對其進行譯碼,高三位行地址譯碼為10000000,低三位列地址譯碼為10000000,選中77單元向其寫入1,則優(yōu)先級為111111的任務進入等待狀態(tài)。若要將一個處于等待表中的任務刪除,令De有效,同樣,根據(jù)地址線選通某一存儲單元,向單元內寫0,從而刪除某一處于等待狀態(tài)的任務。在控制電路中設置EventGrp 8位寄存器,用于記錄當前各行中是否有等待任務;如圖2所示,第i行中某一位置為1,EventGrp(i)=1,圖中狀態(tài)EventGrp(7)=1、EventGrp(6)=1、EventGrp(0)=0。Rd有效時,控制電路根據(jù)EventGrp采用一定算法生成優(yōu)先級的高三位;根據(jù)EventGrp讀出某行后生成優(yōu)先級低三位;下一時鐘送出最高優(yōu)先級。以上為對等待表進行基本讀寫操作的過程。
1 信號量管理的工作原理
μC/OS-II中信號量主要數(shù)據(jù)結構由兩部分組成:(1)信號量的計數(shù)值Cnt。當數(shù)值為正時用于記錄可使用的資源數(shù),當數(shù)值為負,其絕對值表示等待當前信號量的任務個數(shù);(2)等待該信號量的任務列表。信號量的基本數(shù)據(jù)結構需要申請一個ECB來存儲。一個任務或ISR可以通過ECB向另外的任務發(fā)信號,一個任務可以等待另一個任務或中斷服務子程序給它發(fā)送信號,多個任務可同時等待同一個事件的發(fā)生[3]。當事件發(fā)生后,等待該事件的優(yōu)先級最高的任務進入就緒狀態(tài),觸發(fā)一次任務調度[3]。任務或者中斷服務子程序都可以給ECB發(fā)信號,對ECB進行操作。
信號量管理的工作原理框圖如圖1所示。信號量管理模塊以及事件控制塊管理都是獨立于CPU的邏輯結構,都可以直接從數(shù)據(jù)總線上獲得數(shù)據(jù)信息進行處理,在信號量管理模塊與ECB的存儲模塊間建立一條數(shù)據(jù)通路,在不增加總線負擔的情況下加快二者間的通信。這些硬件邏輯獨立于CPU工作,減少了CPU的工作,從而提高系統(tǒng)的響應能力。
2 信號量管理的硬件設計與實現(xiàn)
2.1 ECB的設計與實現(xiàn)
ECB是實現(xiàn)信號量管理的基本數(shù)據(jù)結構,因此在設計實現(xiàn)信號量管理之前,要先完成ECB管理的設計與實現(xiàn)。本系統(tǒng)中ECB的結構參照μC/OS-II中ECB的結構設計。每個ECB存儲單元包含一個EventType(事件類型),用于標記當前ECB被分配給信號量、互斥型信號量、郵箱還是消息隊列;當一個ECB被分配給信號量時,Cnt做為信號量的計數(shù)器;ECB中的等待表lut用于存儲等待當前信號量任務的優(yōu)先級(μC/OS-II中沒有兩個任務有相同的優(yōu)先級)[3]。
ECB中等待表硬件實現(xiàn)的結構示意圖如圖2所示。等待表的結構類似一個8行8列的矩陣,存儲單元編號從00~77。當一個任務在申請當前信號量而沒有獲得時,應將當前任務設置為等待狀態(tài),令Wr有效,以申請該信號量任務的優(yōu)先級為地址,進行譯碼,選通相應單元后再進行寫1操作。例如,申請該信號量的任務優(yōu)先級Sid為111111時,對其進行譯碼,高三位行地址譯碼為10000000,低三位列地址譯碼為10000000,選中77單元向其寫入1,則優(yōu)先級為111111的任務進入等待狀態(tài)。若要將一個處于等待表中的任務刪除,令De有效,同樣,根據(jù)地址線選通某一存儲單元,向單元內寫0,從而刪除某一處于等待狀態(tài)的任務。在控制電路中設置EventGrp 8位寄存器,用于記錄當前各行中是否有等待任務;如圖2所示,第i行中某一位置為1,EventGrp(i)=1,圖中狀態(tài)EventGrp(7)=1、EventGrp(6)=1、EventGrp(0)=0。Rd有效時,控制電路根據(jù)EventGrp采用一定算法生成優(yōu)先級的高三位;根據(jù)EventGrp讀出某行后生成優(yōu)先級低三位;下一時鐘送出最高優(yōu)先級。以上為對等待表進行基本讀寫操作的過程。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 開源硬件信號量在行動
- ThreadX(六)------信號量semaphore
- FreeRTOS信號量 & ESP32實戰(zhàn)
- 嵌入式操作系統(tǒng)FreeRTOS的原理與移植實現(xiàn)
- 安全關鍵的嵌入式實時操作系統(tǒng)內核 5次下載
- 解析操作系統(tǒng)的概念、結構和機制 8次下載
- LINUX內核的信號量設計與實現(xiàn) 18次下載
- LINUX內核的信號量設計與實現(xiàn) 5次下載
- uCOS信號量源碼的詳細資料分析 7次下載
- 硬件實時操作系統(tǒng)的設計 1次下載
- 基于新信號量策略的實時提升技術分析 0次下載
- BenOS實時操作系統(tǒng)解密 5次下載
- Linux操作系統(tǒng)信號量機制的實時化改造 18次下載
- VXWORKS實時操作系統(tǒng)中信號量用于多任務同步與互斥的討論
- 嵌入式操作系統(tǒng)的內核研究
- 深度解析全球操作系統(tǒng)格局 670次閱讀
- 詳解實時操作系統(tǒng)和非實時操作系統(tǒng) 3500次閱讀
- FreeRTOS信號量的使用與實例 1788次閱讀
- 什么是實時操作系統(tǒng)(RTOS) 4324次閱讀
- FreeRTOS:一個迷你的實時操作系統(tǒng)內核 828次閱讀
- Free RTOS的互斥信號量 993次閱讀
- Free RTOS的計數(shù)型信號量 873次閱讀
- FreeRTOS的二值信號量 1225次閱讀
- freeRTOS中最常用到的信號量有哪些 1724次閱讀
- FreeRTOS信號量使用教程 2861次閱讀
- 淺談鴻蒙內核源碼的信號量運作原理 1442次閱讀
- 嵌入式μC/OS-II系統(tǒng)中基于ECB基本存儲單元實現(xiàn)信號量管理的設計 1294次閱讀
- 對實時操作系統(tǒng)特性的討論 5039次閱讀
- 簡單介紹信號與信號量 9434次閱讀
- 如何安裝實時操作系統(tǒng)RTOS 6104次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1489次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 91次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 9次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30319次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多