資料介紹
隨著嵌入式技術(shù)的發(fā)展,實(shí)時(shí)操作系統(tǒng)RTOS(Real Time Operating System)被越來越多地應(yīng)用在嵌入式系統(tǒng)中,如:航空航天、工業(yè)控制、汽車電子和核電站建設(shè)等眾多領(lǐng)域。對于現(xiàn)有基于軟件實(shí)現(xiàn)的實(shí)時(shí)操作系統(tǒng),單純依靠改進(jìn)調(diào)度算法已不能使其實(shí)時(shí)性有更大的提高。如果采用硬件邏輯實(shí)現(xiàn)RTOS中的任務(wù)調(diào)度、中斷處理和定時(shí)器管理等功能,則可使其實(shí)時(shí)性和確定性顯著提高。因?yàn)橛布壿嫪?dú)立于處理器運(yùn)行,不占用處理器的處理時(shí)間,所節(jié)省的時(shí)間用于執(zhí)行任務(wù)程序,從而提高了任務(wù)集合的可調(diào)度性和實(shí)時(shí)性。本文基于“外部處理器+FPGA”的硬件平臺(tái)結(jié)構(gòu)[1],在FPGA上設(shè)計(jì)和實(shí)現(xiàn)了硬件實(shí)時(shí)操作系統(tǒng)。
1 硬件實(shí)時(shí)操作系統(tǒng)的結(jié)構(gòu)和運(yùn)行原理
硬件實(shí)時(shí)操作系統(tǒng)能實(shí)現(xiàn)典型實(shí)時(shí)操作系統(tǒng)的各種功能模塊,包括:任務(wù)調(diào)度內(nèi)核、中斷管理模塊、定時(shí)器模塊、資源管理模塊和內(nèi)存管理模塊等[2]。為了實(shí)現(xiàn)穩(wěn)定可靠的系統(tǒng),本文采用逐步演進(jìn)的方法。首先實(shí)現(xiàn)由任務(wù)調(diào)度內(nèi)核(也稱作硬件調(diào)度內(nèi)核)、中斷管理、定時(shí)器管理和接口軟件構(gòu)成的最小系統(tǒng),然后逐步增加其他功能模塊。
硬件RTOS的結(jié)構(gòu)如圖1所示。調(diào)度內(nèi)核是系統(tǒng)的核心,負(fù)責(zé)任務(wù)的調(diào)度管理;中斷管理模塊負(fù)責(zé)管理外部中斷;定時(shí)器模塊負(fù)責(zé)任務(wù)延時(shí)和周期執(zhí)行。硬件RTOS的數(shù)據(jù)通過接口總線與外部系統(tǒng)通信[3]。

任務(wù)調(diào)度內(nèi)核使用FPGA的片內(nèi)寄存器實(shí)現(xiàn)任務(wù)控制塊TCB(Task Control Block)隊(duì)列(簡稱任務(wù)隊(duì)列)。所有未執(zhí)行任務(wù)放在等待隊(duì)列和就緒隊(duì)列中。等待隊(duì)列中的任務(wù)在條件滿足時(shí)將變?yōu)榫途w任務(wù)。本文中,等待任務(wù)主要等待定時(shí)器時(shí)間和中斷到達(dá)。任務(wù)調(diào)度內(nèi)核能在每個(gè)調(diào)度時(shí)機(jī)計(jì)算出優(yōu)先級最高的就緒任務(wù)。調(diào)度內(nèi)核采用搶占式調(diào)度機(jī)制,每個(gè)調(diào)度時(shí)機(jī)輸出優(yōu)先級最高的就緒任務(wù)。
中斷模塊接管處理器除通知中斷以外的所有外部中斷,中斷服務(wù)程序稱作“中斷處理任務(wù)”,與普通任務(wù)一樣被硬件內(nèi)核調(diào)度。外部中斷到來時(shí),觸發(fā)硬件內(nèi)核的調(diào)度時(shí)機(jī),保證中斷任務(wù)的實(shí)時(shí)執(zhí)行。此時(shí),軟件實(shí)時(shí)操作系統(tǒng)的中斷嵌套已經(jīng)轉(zhuǎn)換為處理器中任務(wù)的搶占,高優(yōu)先級的中斷任務(wù)可以搶占低優(yōu)先級任務(wù)。
定時(shí)器管理模塊實(shí)現(xiàn)任務(wù)的延時(shí)和周期運(yùn)行,在設(shè)定任務(wù)周期或延時(shí)時(shí)間后,每當(dāng)設(shè)定時(shí)間到時(shí)便會(huì)使對應(yīng)任務(wù)就緒,并觸發(fā)硬件內(nèi)核的調(diào)度時(shí)機(jī),由后者執(zhí)行一次任務(wù)調(diào)度。
接口總線硬件實(shí)現(xiàn)處理器與硬件RTOS之間的數(shù)據(jù)傳輸和事件通知。接口軟件從功能上分為兩類:(1)系統(tǒng)API。被應(yīng)用程序調(diào)用,能通過接口總線向硬件RTOS發(fā)送命令。硬件RTOS收到命令后,解析數(shù)據(jù),執(zhí)行相應(yīng)操作。(2)通知中斷服務(wù)程序。硬件RTOS進(jìn)行一次任務(wù)調(diào)度后,如果發(fā)現(xiàn)新“選出”的最高優(yōu)先級就緒任務(wù)與當(dāng)前處理器正在執(zhí)行的任務(wù)不同,則需要進(jìn)行現(xiàn)場切換。硬件調(diào)度內(nèi)核將利用通知中斷告知處理器該就緒任務(wù)的ID和堆棧地址,觸發(fā)后者執(zhí)行中斷服務(wù)程序,以執(zhí)行現(xiàn)場切換。
任務(wù)存在阻塞(S0)、就緒(S1)和運(yùn)行(S2)三個(gè)狀態(tài),定時(shí)器存在停止(T0)、運(yùn)行(T1)兩個(gè)狀態(tài),中斷模塊存在無效(I0)、有效(I1)兩個(gè)狀態(tài)。圖2描述了最小系統(tǒng)各模塊的運(yùn)行狀態(tài)。

2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
本文選用ARM9系列的處理器S3C2410和Actel公司的FPGA芯片APA075,用后者實(shí)現(xiàn)硬件實(shí)時(shí)操作系統(tǒng),調(diào)度在處理器上執(zhí)行的任務(wù)。
2.1 任務(wù)調(diào)度內(nèi)核的設(shè)計(jì)實(shí)現(xiàn)
實(shí)時(shí)操作系統(tǒng)的核心是任務(wù)調(diào)度內(nèi)核,其主要功能是根據(jù)調(diào)度算法,在每個(gè)調(diào)度時(shí)機(jī)確定下一個(gè)將要執(zhí)行的任務(wù),并適時(shí)進(jìn)行現(xiàn)場切換。為此,調(diào)度內(nèi)核需要維護(hù)一系列的任務(wù)隊(duì)列(如就緒任務(wù)隊(duì)列和等待任務(wù)隊(duì)列),并在每個(gè)調(diào)度時(shí)機(jī),根據(jù)優(yōu)先級重新排列就緒隊(duì)列,以計(jì)算出優(yōu)先級最高的就緒任務(wù)。
合理的任務(wù)控制塊是實(shí)現(xiàn)硬件調(diào)度內(nèi)核的關(guān)鍵,應(yīng)能根據(jù)調(diào)度算法分配優(yōu)先級,并利于優(yōu)先級比較,而且能夠索引最終結(jié)果。根據(jù)上述需求,設(shè)計(jì)了如圖3所示的任務(wù)控制塊結(jié)構(gòu)。其中ID為任務(wù)號(hào),State為任務(wù)狀態(tài),Prio為任務(wù)優(yōu)先級,SP_End為任務(wù)堆棧終止地址,Run_Time 為任務(wù)起始運(yùn)行時(shí)間,End_Time為任務(wù)結(jié)束運(yùn)行時(shí)間。起始和截止時(shí)間能根據(jù)特定算法分配任務(wù)的優(yōu)先級。Delay_Counter為任務(wù)延時(shí)計(jì)數(shù)器,Timer_Counter為周期任務(wù)分頻計(jì)數(shù)器,Int_Number為中斷號(hào)。
1 硬件實(shí)時(shí)操作系統(tǒng)的結(jié)構(gòu)和運(yùn)行原理
硬件實(shí)時(shí)操作系統(tǒng)能實(shí)現(xiàn)典型實(shí)時(shí)操作系統(tǒng)的各種功能模塊,包括:任務(wù)調(diào)度內(nèi)核、中斷管理模塊、定時(shí)器模塊、資源管理模塊和內(nèi)存管理模塊等[2]。為了實(shí)現(xiàn)穩(wěn)定可靠的系統(tǒng),本文采用逐步演進(jìn)的方法。首先實(shí)現(xiàn)由任務(wù)調(diào)度內(nèi)核(也稱作硬件調(diào)度內(nèi)核)、中斷管理、定時(shí)器管理和接口軟件構(gòu)成的最小系統(tǒng),然后逐步增加其他功能模塊。
硬件RTOS的結(jié)構(gòu)如圖1所示。調(diào)度內(nèi)核是系統(tǒng)的核心,負(fù)責(zé)任務(wù)的調(diào)度管理;中斷管理模塊負(fù)責(zé)管理外部中斷;定時(shí)器模塊負(fù)責(zé)任務(wù)延時(shí)和周期執(zhí)行。硬件RTOS的數(shù)據(jù)通過接口總線與外部系統(tǒng)通信[3]。

任務(wù)調(diào)度內(nèi)核使用FPGA的片內(nèi)寄存器實(shí)現(xiàn)任務(wù)控制塊TCB(Task Control Block)隊(duì)列(簡稱任務(wù)隊(duì)列)。所有未執(zhí)行任務(wù)放在等待隊(duì)列和就緒隊(duì)列中。等待隊(duì)列中的任務(wù)在條件滿足時(shí)將變?yōu)榫途w任務(wù)。本文中,等待任務(wù)主要等待定時(shí)器時(shí)間和中斷到達(dá)。任務(wù)調(diào)度內(nèi)核能在每個(gè)調(diào)度時(shí)機(jī)計(jì)算出優(yōu)先級最高的就緒任務(wù)。調(diào)度內(nèi)核采用搶占式調(diào)度機(jī)制,每個(gè)調(diào)度時(shí)機(jī)輸出優(yōu)先級最高的就緒任務(wù)。
中斷模塊接管處理器除通知中斷以外的所有外部中斷,中斷服務(wù)程序稱作“中斷處理任務(wù)”,與普通任務(wù)一樣被硬件內(nèi)核調(diào)度。外部中斷到來時(shí),觸發(fā)硬件內(nèi)核的調(diào)度時(shí)機(jī),保證中斷任務(wù)的實(shí)時(shí)執(zhí)行。此時(shí),軟件實(shí)時(shí)操作系統(tǒng)的中斷嵌套已經(jīng)轉(zhuǎn)換為處理器中任務(wù)的搶占,高優(yōu)先級的中斷任務(wù)可以搶占低優(yōu)先級任務(wù)。
定時(shí)器管理模塊實(shí)現(xiàn)任務(wù)的延時(shí)和周期運(yùn)行,在設(shè)定任務(wù)周期或延時(shí)時(shí)間后,每當(dāng)設(shè)定時(shí)間到時(shí)便會(huì)使對應(yīng)任務(wù)就緒,并觸發(fā)硬件內(nèi)核的調(diào)度時(shí)機(jī),由后者執(zhí)行一次任務(wù)調(diào)度。
接口總線硬件實(shí)現(xiàn)處理器與硬件RTOS之間的數(shù)據(jù)傳輸和事件通知。接口軟件從功能上分為兩類:(1)系統(tǒng)API。被應(yīng)用程序調(diào)用,能通過接口總線向硬件RTOS發(fā)送命令。硬件RTOS收到命令后,解析數(shù)據(jù),執(zhí)行相應(yīng)操作。(2)通知中斷服務(wù)程序。硬件RTOS進(jìn)行一次任務(wù)調(diào)度后,如果發(fā)現(xiàn)新“選出”的最高優(yōu)先級就緒任務(wù)與當(dāng)前處理器正在執(zhí)行的任務(wù)不同,則需要進(jìn)行現(xiàn)場切換。硬件調(diào)度內(nèi)核將利用通知中斷告知處理器該就緒任務(wù)的ID和堆棧地址,觸發(fā)后者執(zhí)行中斷服務(wù)程序,以執(zhí)行現(xiàn)場切換。
任務(wù)存在阻塞(S0)、就緒(S1)和運(yùn)行(S2)三個(gè)狀態(tài),定時(shí)器存在停止(T0)、運(yùn)行(T1)兩個(gè)狀態(tài),中斷模塊存在無效(I0)、有效(I1)兩個(gè)狀態(tài)。圖2描述了最小系統(tǒng)各模塊的運(yùn)行狀態(tài)。

2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
本文選用ARM9系列的處理器S3C2410和Actel公司的FPGA芯片APA075,用后者實(shí)現(xiàn)硬件實(shí)時(shí)操作系統(tǒng),調(diào)度在處理器上執(zhí)行的任務(wù)。
2.1 任務(wù)調(diào)度內(nèi)核的設(shè)計(jì)實(shí)現(xiàn)
實(shí)時(shí)操作系統(tǒng)的核心是任務(wù)調(diào)度內(nèi)核,其主要功能是根據(jù)調(diào)度算法,在每個(gè)調(diào)度時(shí)機(jī)確定下一個(gè)將要執(zhí)行的任務(wù),并適時(shí)進(jìn)行現(xiàn)場切換。為此,調(diào)度內(nèi)核需要維護(hù)一系列的任務(wù)隊(duì)列(如就緒任務(wù)隊(duì)列和等待任務(wù)隊(duì)列),并在每個(gè)調(diào)度時(shí)機(jī),根據(jù)優(yōu)先級重新排列就緒隊(duì)列,以計(jì)算出優(yōu)先級最高的就緒任務(wù)。
合理的任務(wù)控制塊是實(shí)現(xiàn)硬件調(diào)度內(nèi)核的關(guān)鍵,應(yīng)能根據(jù)調(diào)度算法分配優(yōu)先級,并利于優(yōu)先級比較,而且能夠索引最終結(jié)果。根據(jù)上述需求,設(shè)計(jì)了如圖3所示的任務(wù)控制塊結(jié)構(gòu)。其中ID為任務(wù)號(hào),State為任務(wù)狀態(tài),Prio為任務(wù)優(yōu)先級,SP_End為任務(wù)堆棧終止地址,Run_Time 為任務(wù)起始運(yùn)行時(shí)間,End_Time為任務(wù)結(jié)束運(yùn)行時(shí)間。起始和截止時(shí)間能根據(jù)特定算法分配任務(wù)的優(yōu)先級。Delay_Counter為任務(wù)延時(shí)計(jì)數(shù)器,Timer_Counter為周期任務(wù)分頻計(jì)數(shù)器,Int_Number為中斷號(hào)。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 合宙新一代物聯(lián)網(wǎng)開源操作系統(tǒng)LuatOS,開啟行業(yè)嵌入式開發(fā)新生態(tài)!
- ucosII嵌入式實(shí)時(shí)操作系統(tǒng)實(shí)驗(yàn)
- DSP硬實(shí)時(shí)操作系統(tǒng)用戶手冊下載 30次下載
- 安全關(guān)鍵的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核 5次下載
- MTK嵌入式實(shí)時(shí)操作系統(tǒng)的硬件培訓(xùn)教程免費(fèi)下載 6次下載
- 如何使用物聯(lián)網(wǎng)操作系統(tǒng)Zephyr實(shí)現(xiàn)“連續(xù)集成”開源軟件的詳細(xì)說明
- TIDSP/BIOSv6.35實(shí)時(shí)操作系統(tǒng)用戶指南 4次下載
- 硬件實(shí)時(shí)操作系統(tǒng)信號(hào)量管理的設(shè)計(jì)解析 0次下載
- 基于QNX實(shí)時(shí)操作系統(tǒng)及應(yīng)用分析 12次下載
- 如何選擇實(shí)時(shí)操作系統(tǒng) 0次下載
- 高效實(shí)時(shí)操作系統(tǒng)設(shè)計(jì) 26次下載
- BenOS實(shí)時(shí)操作系統(tǒng)解密 5次下載
- 實(shí)時(shí)操作系統(tǒng)RTEMS結(jié)構(gòu)研究 78次下載
- 實(shí)時(shí)操作系統(tǒng)用于嵌入式應(yīng)用系統(tǒng)的設(shè)計(jì) 42次下載
- 嵌入式實(shí)時(shí)操作系統(tǒng)教程
- 深度解析全球操作系統(tǒng)格局 3.4k次閱讀
- 詳解實(shí)時(shí)操作系統(tǒng)和非實(shí)時(shí)操作系統(tǒng) 6.7k次閱讀
- 什么是實(shí)時(shí)操作系統(tǒng)(RTOS) 8.4k次閱讀
- 基于優(yōu)先級調(diào)度的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核詳解(下) 1.8k次閱讀
- FreeRTOS:一個(gè)迷你的實(shí)時(shí)操作系統(tǒng)內(nèi)核 1.7k次閱讀
- Linux是實(shí)時(shí)系統(tǒng)還是分時(shí)操作系統(tǒng)? 2.1k次閱讀
- 米爾科技嵌入式實(shí)時(shí)操作系統(tǒng)介紹 3k次閱讀
- 基于μC/OS-II實(shí)時(shí)操作系統(tǒng)的硬件加速設(shè)計(jì) 1.3k次閱讀
- 對實(shí)時(shí)操作系統(tǒng)特性的討論 5.8k次閱讀
- 嵌入式操作系統(tǒng)是什么_嵌入式操作系統(tǒng)有哪些 2.1w次閱讀
- 如何安裝實(shí)時(shí)操作系統(tǒng)RTOS 6.8k次閱讀
- 基于FreeRTOS的嵌入式實(shí)時(shí)操作系統(tǒng)的原理和實(shí)現(xiàn) 7.3k次閱讀
- 概述及匯總ARM的嵌入式操作系統(tǒng) 3.2k次閱讀
- 如何為遠(yuǎn)程醫(yī)療設(shè)備選擇合適的實(shí)時(shí)操作系統(tǒng)? 3.4k次閱讀
- 基于CORBA技術(shù)的嵌入式控制器設(shè)計(jì) 2k次閱讀
下載排行
本周
- 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ā)視頻
上傳資料賺積分
評論