




已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式系統(tǒng)的定義和三要素:嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,應用系統(tǒng)對功能,可靠性,成本,體積和功耗等嚴格要求的專用計算機系統(tǒng)。(1) 系統(tǒng)級,(2) 板級, (3) 芯片級。2、實時操作系統(tǒng)的定義,硬實時與軟實時的區(qū)分,各自的特點是?1) 實時系統(tǒng)的定義:一般地說,實時系統(tǒng)是指系統(tǒng)在限定的時間內能夠提供所需要的服務水平的系統(tǒng)。實時系統(tǒng)根據(jù)對于實時性要求的不同,可以分為軟實時和硬實時兩種類型。軟實時系統(tǒng)要求各個任務運行得越快越好,但并不苛求任務運行的時限。如果系統(tǒng)特定的時序得不到滿足,只會引起性能的嚴重下降,并不產生嚴重后果。硬實時系統(tǒng)不僅要求各個任務執(zhí)行無誤,而且要求執(zhí)行準時,如果特定的時序得不到滿足,將會引起災難性的后果。3、嵌入式操作系統(tǒng)伴隨著嵌入式系統(tǒng)的發(fā)展經歷了四個比較明顯的階段。第一階段:無操作系統(tǒng)的嵌入算法階段,通過匯編語言編程對系統(tǒng)進行直接控制,運行結束后清除內存。系統(tǒng)結構和功能都相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口,比較適合于各類專用領域。第二階段:以嵌入式CPU為基礎、簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。CPU 種類繁多,通用性比較差;系統(tǒng)開銷小,效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和擴展性;應用軟件較專業(yè),用戶界面不夠友好;操作系統(tǒng)主要用來控制系統(tǒng)負載以及監(jiān)控應用程序運行。第三階段:通用的嵌入式實時操作系統(tǒng)階段。以嵌入式操作系統(tǒng)為核心的嵌入式系統(tǒng)能運行于各種類型的微處理器上,兼容性好;內核精小、效率高,具有高度的模塊化和擴展性;具備文件和目錄管理、設備支持、多任務、網(wǎng)絡支持、圖形窗口以及用戶界面等功能;具有大量的應用程序接口;嵌入式應用軟件豐富。第四階段:以Internet為標志的嵌入式實時操作系統(tǒng)開始向網(wǎng)絡操作系統(tǒng)方向發(fā)展,這是一個正在迅速發(fā)展的階段。4、通用操作系統(tǒng)與實時操作系統(tǒng)區(qū)別。 (1)設計目標不同。(2) 調度原則不同。(3) 內存管理機制不同。(4) 穩(wěn)定性及交互性不同。(5) 實時性不同。5、嵌入式操作系統(tǒng)主要構成部分,核心是,其定義、功能通常嵌入式操作系統(tǒng)由內核(Kernel)、文件系統(tǒng)、存儲器管理系統(tǒng)、I/O管理系統(tǒng)、設備驅動程序、網(wǎng)絡協(xié)議棧和標準化瀏覽器等部分組成,。內核是多任務系統(tǒng)中的核心部分,提供多任務,為多任務分配CPU時間,提供任務管理與調度、時間管理、任務間通信和同步、內存管理等重要服務,并作為系統(tǒng)調用提供給任務的使用者。內核的基本任務是任務調度和任務間通信。實時內核主要有可剝奪型內核和不可剝奪型內核兩種。內核允許將系統(tǒng)分成多個獨立的任務,每個任務處理程序的一部分,從而簡化系統(tǒng)的設計過程。一個好的實時內核需要具備以下功能和特點: 任務管理; 任務間可以進行同步和通信; 實時時鐘服務; 中斷管理服務; 操作系統(tǒng)的行為是可知的和可預測的。1、什么是前后臺系統(tǒng)前后臺系統(tǒng)一般由前臺(Foreground)和后臺(Background)兩部分程序組成。后臺是一個無限循環(huán)的應用程序,循環(huán)中調用相應的任務函數(shù)完成相應的操作,各個任務依次運行,沒有調度,運行的次序不能改變。前臺是中斷服務程序,處理異步事件。后臺一般也叫任務級,前臺也叫中斷級。2、基本的調度算法和什么是臨界區(qū)先來先服務,最短周期優(yōu)先,優(yōu)先級法,輪轉法。用于訪問臨界資源的代碼段稱為臨界區(qū)。3、什么是任務切換?定義?任務有幾個狀態(tài)?所謂任務切換(Context Switch或者Task Switch),實際上是模擬一次中斷過程,從而實現(xiàn)CPU使用權的轉移。每個任務都有自己獨立的堆棧,稱之為任務棧,用于保存任務的當前狀態(tài)和所有寄存器內容。當內核決定運行另一個任務時,首先入棧,將當前任務用到的所有寄存器內容以及當前狀態(tài)保存到自己的任務棧中去,然后像中斷返回一樣,將下一個將要運行的任務的所有寄存器內容和狀態(tài)從該任務的任務棧中彈出,重新裝入CPU的寄存器,任務即恢復到掛起前的狀態(tài),并開始執(zhí)行。這個過程就是任務切換。休眠態(tài)、就緒態(tài)、運行態(tài)、掛起態(tài))和被中斷態(tài)五種狀態(tài)。4、什么是死鎖?產生的根本原因?產生死鎖的4個必要條件?預防的基本思想?死鎖又稱抱死,是指兩個或者更多的任務相互等待對方占有的資源而無限期地僵持下去的局面。產生死鎖的根本原因在于:系統(tǒng)資源不足,任務運行推進的順序不合理,資源分配不恰當?shù)?。死鎖產生有四個必要的條件: 互斥條件,系統(tǒng)中某些資源只能獨占使用; 非搶占條件,系統(tǒng)中某些資源僅能被它的占有者所釋放,而不能被別的任務強行搶占; 占有并等待條件,系統(tǒng)中的某些任務已占有了分給它的資源,但仍然等待其它資源; 循環(huán)等待條件,系統(tǒng)中由若干任務形成的環(huán)形請求鏈,每個任務均占有若干種資源中的某一種,同時還要求(鏈上)下一個任務所占有的資源。必要的條件具備后,當任務推進順序不合理時,死鎖就發(fā)生了。死鎖預防的基本思想:打破產生死鎖的四個必要條件中的一個或幾個。預防死鎖的策略:資源預先分配策略、資源有序分配策略。 (1) 資源預先分配策略: (2) 資源有序分配策略:5、內核的定義和基本任務和分類?內核是多任務系統(tǒng)中的核心部分,提供多任務分配cpu時間,提供任務管理與調度,時間管理通信與同步,內存管理等重要服務,并作為系統(tǒng)供給任務的使用者。內核的基本任務是任務調度與任務間的通信。不可剝奪型內核(Non-Preemptive Kernel)的特點是運行的任務占有CPU的絕對使用權,若不自我放棄,準備就緒的高優(yōu)先級任務不能搶占CPU的使用權。使用可剝奪型內核,準備就緒的最高優(yōu)先級任務總能得到CPU的使用權。6、什么是互斥?本質?滿足互斥最一般的方法有?任務間通信的最簡單方法就是使用共享數(shù)據(jù)結構或者共享變量,為了防止任務在使用共享資源時破壞數(shù)據(jù),資源必須獨占使用。這種獨占使用資源的方法稱為互斥,互斥的本質是為了有序地利用資源。滿足互斥最一般的方法有:禁止中斷、禁止搶占、利用信號量和測試并置位等。7、通信?常用的通信方法?同步?同步的方式?常用的同步方法?任務與任務之間或者任務與中斷服務之間的信息傳遞稱為任務間的通信。任務間的通信機制是多任務之間相互同步和協(xié)調各活動的主要手段。任務間信息的傳遞有兩個途徑:通過全程變量或發(fā)消息給另一個任務。常用的通信方法主要有全局變量、信號量、消息郵箱、消息隊列、事件標志組和內存塊。在實時系統(tǒng)中,一個工作的完成往往需要多個任務或者多個任務與多個任務中斷共同完成,它們之間必須互相配合,協(xié)調動作,甚至交換信息,就要用到同步技術。同步可以是任務與任務之間的同步,也可以是任務與中斷之間的同步。同步的方式有單向同步和雙向同步。同步的方法有信號量,事件標志組,消息郵箱,消息隊列。1、什么是任務控制塊?有何功能?任務控制塊(Task Control Blocks,OS_TCB)是一個用來保存任務各種狀態(tài)信息的數(shù)據(jù)結構,它可以實現(xiàn)如下功能: 一旦任務建立,任務控制塊OS_TCB就會被賦值; 當任務的CPU使用權被剝奪時,任務控制塊用來保存該任務的狀態(tài); 當任務重新得到CPU使用權時,任務控制塊能確保任務從當時被中斷的那一點絲毫不差地繼續(xù)執(zhí)行。OS_ TCB全部駐留在RAM中。2、任務調度的功能有哪些方式?任務的調度機制是內核的核心。C/OS-的調度器主要有兩個功能:一是確定進入就緒態(tài)的任務中哪個優(yōu)先級最高;二是進行任務切換。調度有兩種方式:任務級的調度是由OSSched()函數(shù)完成的;中斷級的調度是由OSIntExt()函數(shù)完成的。1、中斷定義,異步事件?中斷詳細處理過程?中斷定義為CPU對系統(tǒng)內外發(fā)生的異步事件的響應。異步事件是指沒有一定時序關系的、隨機發(fā)生的事件。當中斷產生時,由硬件向CPU 發(fā)送一個異步事件請求,CPU接收到請求后,中止當前工作,保存當前運行環(huán)境,轉去處理相應的異步事件任務,這個過程稱為中斷。事件處理完畢后,在前后臺系統(tǒng)中,程序回到后臺程序;在不可剝奪型內核中,程序回到被中斷了的任務;在可剝奪型內核中,讓進入就緒態(tài)的優(yōu)先級最高的任務開始運行,若沒有高優(yōu)先級任務準備就緒,則回到被中斷了的任務。2、中斷延遲在前后臺系統(tǒng)中: 在不可剝奪型和可剝奪內核中:3、中斷響應在前后臺系統(tǒng)和不可剝奪型內核中,保存寄存器以后立即執(zhí)行用戶代碼,中斷響應由下式給出:中斷響應=中斷延遲+保存CPU內部寄存器的時間在可剝奪型內核中,則要先調用一個特定的函數(shù),通知內核即將進行中斷服務,使得內核可以跟蹤中斷的嵌套。對C/OS-說來,這個函數(shù)是OSIntEnter(),可剝奪型內核的中斷響應由下式給出:中斷響應=中斷延遲+保存CPU內部寄存器的時間+內核進入中斷服務函數(shù)的執(zhí)行時間4、延時函數(shù)?程序清單4.6 OSTimeDly()函數(shù)的源代碼void OSTimeDly (INT16U ticks) if (ticks 0) /*如果加入指定一個0值,則表示不想對任務延時,函數(shù)立即返回調用者*/OS_ENTER_CRITICAL(); /*關中斷*/if (OSRdyTblOSTCBCur-OSTCBY &= OSTCBCur-OSTCBBitX) = 0) /*從就緒表中移出當前任務*/OSRdyGrp &= OSTCBCur-OSTCBBitY;OSTCBCur-OSTCBDly = ticks;/*保存節(jié)拍數(shù),每隔一個時鐘節(jié)拍,這個成員變量數(shù)減1*/OS_EXIT_CRITICAL(); /*關中斷*/OSSched();/*當前任務已經掛起,任務調度程序執(zhí)行下一個優(yōu)先級最高的就緒任務*/5、中斷程序流程圖1、移植的概念這里所謂的移植,就是使一個實時內核能運行在另一種微處理器或者微控制器上。2、移植對開發(fā)工具的要求,微處理器的要求(了解)1. 移植對微處理器的要求要使C/OS-能夠正常運行,處理器和編譯器必須滿足以下五項要求:(1) 處理器的C編譯器能產生可重入代碼;(2) 用C語言就可以實現(xiàn)開關中斷;(3) 處理器至少能支持定時中斷,中斷頻率一般在10100 Hz之間;(4) 處理器能夠支持硬件堆棧,容量可達幾KB;(5) 處理器有堆棧指針和讀/寫CPU其它寄存器、堆棧內容或內存的指令。2. 對移植開發(fā)工具的要求移植C/OS-,需要一個針對用戶用的CPU的C編譯器,它必須滿足如下要求:(1) C編譯器必須支持匯編語言程序。(2) C編譯器必須能支持可重入代碼,因為C/OS-是一個可剝奪型內核。(3) C編譯器必須包括匯編器、連接器和定位器。連接器用來將經編譯和匯編后產生的不同的模塊連接成目標文件。定位器用于將代碼和數(shù)據(jù)放置在目標處理器的指定內存映射空間中。(4) C編譯器必須支持從C中打開和關閉中斷。(5) C編譯器最好支持用戶在C語言程序中嵌入?yún)R編語言,這有利于用匯編語言來直接開關中斷。3、移植的主要工作(1) 聲明11個數(shù)據(jù)類型(OS_CPU.H);(2) 用#define聲明4個宏(OS_CPU.H);(3) 用C語言編寫10個簡單的函數(shù)(OS_CPU_C.C);(4) 編寫4個匯編語言函數(shù)(OS_CPU_A.ASM)。4、移植代碼的測試。目的?如何進行?方法?測試的主要順序?在代碼修改移植結束后,緊接著要進行的工作就是測試。測試的目的就是驗證所移植的代碼是否能正常地工作,這也可能是移植過程中最復雜的工作,但必不可少。測試的主要方法如下:(1) 在沒有應用程序的情況下進行,讓內核自己測試自己,以確保自身運行狀況沒有錯誤。這樣做有兩個好處:第一,避免使本來就復雜的事情變得更加復雜;第二,如果出現(xiàn)問題,可以知道問題出在內核代碼上而不是應用程序。(2) 簡單的測試代碼如程序清單10.7所示。當多任務調度運行成功后,再逐步添加應用程序。#include includes.hvoid main()OSInit();OSStart()測試的主要順序如下:(1) 確保C編譯器、匯編編譯器及連接器正常工作;(2) 驗證OSTaskStkInit()和OSStartHighRdy()函數(shù);(3) 驗證OSCtxSw()函數(shù);(4) 驗證OSIntCtxSw()函數(shù)。這些測試可以用少量的任務和中斷來實現(xiàn)。5、MC51移植程序(不知道考什么)程序清單10.8 OS_CPU.H頭文件在MCS-51單片機上的移植代碼/*與編譯器有關的數(shù)據(jù)類型*/typedef unsigned char BOOLEAN; /*不能使用bit定義,因為在結構體里無法使用*/typedef unsigned char INT8U; /*無符號8位數(shù)*/typedef signed char INT8S; /*有符號8位數(shù)*/typedef unsigned int INT16U; /*無符號16位數(shù)*/typedef signed int INT16S; /*有符號16位數(shù)*/typedef unsigned long INT32U; /*無符號32位數(shù)*/typedef signed long INT32S; /*有符號32位數(shù)*/typedef float FP32; /*單精度浮點數(shù)*/typedef double FP64; /*雙精度浮點數(shù)*/typedef unsigned char OS_STK; /*定義堆棧入口寬度為8位*/typedef unsigned char OS_CPU_SR; /*定義CPU狀態(tài)字的寬度為8位*/*與處理器有關的代碼*/#if OS_CRITICAL_METHOD = 1#define OS_ENTER_CRITICAL() EA=0 /*直接禁止中斷*/#define OS_EXIT_CRITICAL() EA=1 /*直接允許中斷*/#endif#if OS_CRITICAL_METHOD = 2#define OS_ENTER_CRITICAL() /*未用*/#define OS_EXIT_CRITICAL() /*未用*/#endif#if OS_CRITICAL_METHOD = 3#define OS_ENTER_CRITICAL() cpu_sr = IE & 0x80;IE &= 0x7F /*禁止中斷*/#define OS_EXIT_CRITICAL() IE |= cpu_sr /*允許中斷*/#endif#define OS_STK_GROWTH 0 /*MCU-51堆棧從下往上增長 1=向下,0=向上*/#define OS_TASK_SW() OSCtxSw()6、MC51移植代碼重要函數(shù)OSTaskStkInit()函數(shù)功能程序清單10.9 MCS-51的OSTaskStkInit()函數(shù)移植實例void *OSTaskStkInit (void (*task)(void *pd), void *ppdata, void *ptos, INT16U opt) reentrant OS_STK *stk; ppdata = ppdata; opt = opt; /*opt沒被用到,保留此語句防止告警產生*/ stk = (OS_STK *)ptos; /*任務堆棧最低有效地址*/*stk+ = 15; /*任務堆棧長度*/ *stk+ = (INT16U)task & 0xFF; /*任務代碼地址低8位*/ *stk+ = (INT16U)task 8; /*任務代碼地址高8位*/ *stk+ = 0x00; /*PSW*/ *stk+ = 0x0A; /*ACC*/*stk+ = 0x0B; /*B*/ *stk+ = 0x00; /*DPL*/ *stk+ = 0x00; /*DPH*/ *stk+ = 0x00; /*R0*/ *stk+ = 0x01; /*R1*/*stk+ = 0x02; /*R2*/ *stk+ = 0x03; /*R3*/ *stk+ = 0x04; /*R4*/ *stk+ = 0x05; /*R5*/ *stk+ = 0x06; /*R6*/*stk+ = 0x07; /*R7*/ /*不用保存SP,任務切換時根據(jù)用戶堆棧長度計算得出*/ *stk+ = (INT16U) (ptos+MaxStkSize) 8;/*?C_XBP仿真堆棧指針高8位(見程序清單10.10) */ *stk+ = (INT16U) (ptos+MaxStkSize) & 0xFF;/*?C_XBP 仿真
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫安全隱患排查與整改計劃
- 用故事傳遞道德的力量計劃
- 信息處理技術員的實戰(zhàn)案例分析
- 戰(zhàn)略判斷的多維分析試題及答案
- 培育班級創(chuàng)新文化的有效措施計劃
- 金融領域的網(wǎng)絡安全防御計劃
- 2025年法學概論新展望試題及答案
- 購物中心保安工作流程計劃
- 2024年中國海峽人才市場莆田工作部招聘真題
- 幼兒園學期班級教育工作任務計劃安排
- C-TPAT反恐程序文件(完整版)
- 托福詞匯10000電子講義
- 教學茶樹植物保護茶樹常見害蟲及防治
- 連用文件云通用方案
- 電力安裝EC總承包工程技術投標文件
- 施工單位與勞務分包工程量結算單
- 廣告設計制作、施工安裝及售后服務方案
- 線段的垂直平分線(第1課時) 教學設計
- 建筑工程概預算智慧樹知到答案章節(jié)測試2023年浙江廣廈建設職業(yè)技術大學
- 數(shù)據(jù)出境安全評估申報指南(第一版)
- GB/T 3164-2007真空技術圖形符號
評論
0/150
提交評論