




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、系統(tǒng)原理與設(shè)計(實(shí)時)操作系統(tǒng)及驅(qū)動設(shè)計2011.03qhfengRTOS內(nèi)容提要RTOS定義主要功能及實(shí)現(xiàn)方法簡介RTOS中的驅(qū)動BSP一般外設(shè)1、系統(tǒng)中OS的引入軟硬件 方便移植 硬件設(shè)計與應(yīng)用軟件設(shè)計并行(simulator)方便建立多進(jìn)程的復(fù)雜軟件系統(tǒng) 統(tǒng)一高效的任務(wù)管理和通信 高效的使用硬件操作系統(tǒng)OS的主要功能 為應(yīng)用程序提供硬件的接口如何使用硬件管理何時/由何應(yīng)用來使用某 提供工具集 簡化開發(fā)OS實(shí)現(xiàn)對硬件的管理 應(yīng)用程序設(shè)計者不需要關(guān)注硬件細(xì)節(jié) 硬件如何使用由OS管理 不同硬件平臺上OS提供相同接口,甚至可以用軟件模擬接口應(yīng)用程序?qū)嵱霉ぞ?協(xié)議棧操作系統(tǒng)硬件OS-多進(jìn)程的處理簡
2、單應(yīng)用可以由單段實(shí)現(xiàn) 例如大部分單片機(jī)程序(主循環(huán)+中斷)復(fù)雜的應(yīng)用難以用單個實(shí)現(xiàn)及管理 例如:1.2. 通話3. 查找音樂本4. 按鍵輸入5. 顯示操作系統(tǒng)是應(yīng)用程序運(yùn)行的程序OS的功能基本功能 處理器 內(nèi)存管理管理(主要為中斷管理) 進(jìn)程管理(調(diào)度/通信) 設(shè)備驅(qū)動高級功能 文件系統(tǒng) 各種協(xié)議棧( 安全功能庫)操作系統(tǒng)EOS(Embedded Operating System)在ROM等介質(zhì)中)體積?。ㄗ銐蚓喴钥煽啃愿撸ㄩL期不間斷運(yùn)行)功耗低(很多設(shè)備用電池供電)可配置性擴(kuò)充性 新的硬件/新的服務(wù)EOS-體積小內(nèi)核足夠小/可配置單內(nèi)核或宏內(nèi)核 (monolithic kernel, Ma
3、cro kernel ) 宏內(nèi)核被分為若干模塊,運(yùn)行一個的二進(jìn)制大映像。模塊間通過函數(shù)調(diào)用實(shí)現(xiàn)micro kernel微內(nèi)核 微內(nèi)核是一個消息轉(zhuǎn)發(fā)站,把系統(tǒng)調(diào)用轉(zhuǎn)發(fā)給相應(yīng)的模塊。 內(nèi)核本身不提供操作系統(tǒng)的相關(guān)服務(wù),而是提供實(shí)現(xiàn)這些服務(wù)的機(jī)制(地址空間管理,進(jìn)程調(diào)度及通信)(分層)單內(nèi)核與微內(nèi)核EOS-可靠性安全可靠的編碼詳盡的測試/認(rèn)證應(yīng)用軟件具有與操作系統(tǒng)同樣的可靠性:ROM/備份恢復(fù)/看門狗EOS-內(nèi)核裁剪裁剪 預(yù)編譯命令 模塊 運(yùn)行時配置不同內(nèi)核實(shí)現(xiàn)的缺點(diǎn) 單內(nèi)核不容易作出修改 微內(nèi)核效率不高 *均可改進(jìn)EOS-功耗電源管理模塊 在不需要的時候關(guān)閉/休眠硬件讓CPU空閑時進(jìn)入低功耗狀態(tài)定
4、時關(guān)閉時鐘*功耗降低需要應(yīng)用程序配合 優(yōu)化的代碼設(shè)計,快速完成任務(wù) 通知OS關(guān)閉不需要的硬件eOS-擴(kuò)充性靜態(tài)擴(kuò)展 重新編譯/需要源碼/良好的模塊性動態(tài)擴(kuò)展微內(nèi)核內(nèi)核加載/LKM操作系統(tǒng)經(jīng)常性的變化對它的設(shè)計提出一定的要求。一個非常明確的觀點(diǎn)是,在構(gòu)造系統(tǒng)時應(yīng)該采用模塊化的結(jié)構(gòu),清楚地定義模塊間的接口,并備有說明文檔。對于像現(xiàn)代操作系統(tǒng)這樣的大型程序,簡單的模塊化是不夠的。實(shí)時操作系統(tǒng)RTOS(real time OS)系統(tǒng)能夠在限定的響應(yīng)時間內(nèi)提供所需水平的服務(wù)(POSIX 1003.b) POSIX Portable Operationg System Interface(for UNIX
5、) ,IEEE制定的OS標(biāo)準(zhǔn)接口(類UNIX的OS,以及WindowNT均適用)實(shí)時性 快速響應(yīng)外部 快速切換的使用 (實(shí)時任務(wù)調(diào)度) 確保任務(wù)按時完成實(shí)時系統(tǒng)實(shí)時計算:系統(tǒng)的正確性取決于計算的邏輯結(jié)果及產(chǎn)生結(jié)果的時間。硬實(shí)時 硬實(shí)時任務(wù)必須滿足最后期限的限制,否則會給系統(tǒng)帶來不可接受的破壞或致命錯誤。軟實(shí)時 軟實(shí)時任務(wù)期望滿足最后期限的要求;但即使操作最后期限,完成這個任務(wù)仍然是有意義的。周期性實(shí)時任務(wù) 每隔周期T一次的任務(wù) 如果系統(tǒng)中均為周期性實(shí)時任務(wù),則實(shí)時要求容易達(dá)到RTOS的要求可確定性 中斷發(fā)生到響應(yīng)中斷的延遲可響應(yīng)性 處理中斷的時間用戶 用戶完成非常詳細(xì)的設(shè)計(優(yōu)先級/可靠性和故
6、障弱化等)RTOS-可確定性按照固定的、預(yù)先確定的時間或時間間隔執(zhí)行操作。幾乎沒有完全可確定的系統(tǒng) 因為外部不是可以完全預(yù)先確定的中斷發(fā)生開始處理中斷的延遲 非實(shí)時:幾十到幾百ms 實(shí)時:幾到幾百usRTOS-可響應(yīng)性從最初處理中斷到中斷處理完成的時間 ISR是否需要進(jìn)程切換 Interrupt Service Routine. 中斷服務(wù)例程 執(zhí)行ISR所需要的時間 是否可能被其它中斷打斷快速的任務(wù)(進(jìn)程/線程)切換*中斷響應(yīng)時間 包括中斷發(fā)生到開始處理的延遲 處理中斷的時間RTOS-用戶非實(shí)時OS:不實(shí)時OS: 仔細(xì)區(qū)分每個任務(wù)的優(yōu)先級 制定調(diào)度方式(例如是否可搶占) 內(nèi)存的使用方式,進(jìn)程的
7、權(quán)限等或者簡單任務(wù)調(diào)度RTOS-可靠性及故障弱化盡可能詳盡的設(shè)計和測試預(yù)留充足的出問題時能改進(jìn)或降低影響 重啟進(jìn)程 備份機(jī)制性能不足時首先滿足最重要的任務(wù)完成關(guān)機(jī)/重啟/異常關(guān)閉時 保證數(shù)據(jù)的完整通用OS/eRTOS簡單比較通用OSeRTOS/弱交互一般用戶體積一般較大實(shí)時性要求不高可靠性要求不高系統(tǒng)開發(fā)體積小/可裁剪實(shí)時性可靠性要求高(標(biāo)準(zhǔn))總結(jié):RTOS的典型功能/特點(diǎn)體積小高效的中斷管理高效的內(nèi)存管理高效的進(jìn)程管理/通信/調(diào)度2、RTOS主要功能及實(shí)現(xiàn)簡介OS的通用功能中斷管理內(nèi)存管理進(jìn)程管理及實(shí)時的要求小體積、靈活配置高效-實(shí)時RTOS-中斷管理中斷類別 硬件中斷 軟件中斷中斷向量表建
8、立中斷的使能中斷與實(shí)時處理RTOS-中斷中斷響應(yīng)時間 RTOS中關(guān)閉中斷的時間盡可能短 中斷時的上下文切換中斷響應(yīng)過程 中斷函數(shù)->進(jìn)程中斷嵌套時鐘中斷 一般作為RTOS的時間片 時間片短/中斷次數(shù)多 時間片長/中斷次數(shù)少RTOS-內(nèi)存管理物理內(nèi)存-虛擬內(nèi)存 應(yīng)用程序使用的內(nèi)存地址需要經(jīng)過翻譯,轉(zhuǎn)換成最終的硬件地址 轉(zhuǎn)換由OS和硬件共同完成MMU 硬件提供的內(nèi)存管理單元,通常由OS進(jìn)行配置內(nèi)核空間與用戶空間 OS應(yīng)保護(hù)緩存數(shù)據(jù)只能由OS自身 提高器的速度RTOS-進(jìn)程串行處理與并行處理 (單)處理器某個時刻只能完成一個任務(wù) 并行處理是宏觀特性進(jìn)程塊 標(biāo)志符/狀態(tài)/優(yōu)先級/程序計數(shù)器/內(nèi)存
9、指針(堆棧等)/上下文(CPU寄存器)/IO狀態(tài)信息(設(shè)備/文件等)進(jìn)程的狀態(tài)及狀態(tài)轉(zhuǎn)換 新建/就緒/運(yùn)行/阻塞/進(jìn)程與線程 進(jìn)程:;線程:調(diào)度/執(zhí)行;RTOS-進(jìn)程管理互斥 并發(fā)進(jìn)程競爭使用同一個中斷/降低實(shí)時性;多處理器不可用 原子操作 死鎖/饑餓同步 多個進(jìn)程通過共享機(jī)制:信號量交互RTOS-進(jìn)程調(diào)度進(jìn)程調(diào)度 優(yōu)先級搶占每個進(jìn)程一個優(yōu)先級優(yōu)先級預(yù)先分配/是否可改變搶占:高優(yōu)先級的進(jìn)程打斷低優(yōu)先級進(jìn)程的執(zhí)行 時間片輪轉(zhuǎn)按固定時間間隔調(diào)度任務(wù)間片/變長時間片)時間片是否固定(何時調(diào)度/切換進(jìn)程 時鐘中斷/IO中斷/系統(tǒng)調(diào)用RTOS-調(diào)度RTOS一般采用時間片輪轉(zhuǎn)+優(yōu)先級搶占 優(yōu)先級最高的進(jìn)程
10、先執(zhí)行 同一優(yōu)先級的進(jìn)程按時間片輪轉(zhuǎn)執(zhí)行搶占方式: 當(dāng)前任務(wù)結(jié)束/非實(shí)時 在搶占點(diǎn)搶占/實(shí)時性不好 立即搶占優(yōu)先級逆轉(zhuǎn)搶占式操作系統(tǒng)的競爭 高優(yōu)先級任務(wù)需要的占用著名的探路者號任務(wù)解決方案:,正被低優(yōu)先級任務(wù) 優(yōu)先級繼承(在高優(yōu)先級任務(wù)需要改低優(yōu)先級任務(wù)的優(yōu)先級)時,更時間限定的進(jìn)程調(diào)度-RMS速率單調(diào)調(diào)度 rate monotonic scheduling周期性任務(wù) 周期最短的任務(wù)優(yōu)先級最高 周期T 執(zhí)行時間C 處理器使用率 U=C/T U1+Un <= n(21/n 1) (極限0.693) 最壞情況;實(shí)際可以到90%以上實(shí)例 20/100 40/150100/3500.753<
11、;0.779 2/43/63/1215>12時間限定的進(jìn)程調(diào)度-EDF截止時間最近者優(yōu)先調(diào)度 Earliest Deadline First動態(tài)優(yōu)先級 截止時限最近的進(jìn)程擁有最高優(yōu)先級RTOS-進(jìn)程間通信小數(shù)據(jù)量的通信 信號大數(shù)據(jù)量的通信 消息隊列 共享內(nèi)存 管道主流eRTOS及特點(diǎn)Linux VxWorks WinCE uCOSNucleus PlusLinux簡介應(yīng)用最廣開源/豐富單內(nèi)核+微內(nèi)核(可加載內(nèi)核模塊)分支: 普通Linux裁剪 精簡內(nèi)核 實(shí)時性差(10ms,2.4內(nèi)核不可搶占) RTLinux 添加實(shí)時內(nèi)核模塊 ucLinux不支持MMU Monta Vista Linu
12、xVxWorks簡介高實(shí)時性/高可靠性行業(yè)特點(diǎn): 優(yōu)先級搶占+時間片輪轉(zhuǎn)(可關(guān)閉) uS級的響應(yīng)時間 完備的工具/協(xié)議棧 標(biāo)準(zhǔn)接口,通過多項測試WinCE簡介調(diào)度:可搶占+時間片輪轉(zhuǎn)(默認(rèn)100ms) 優(yōu)先級 0-256 0-96 高于Driver 97-152 Driver 153-247 低于Driver 248-255 普通應(yīng)用中斷:不可嵌套 /降低實(shí)時性 ISR(中斷服務(wù)例程)+IST(中斷服務(wù)線程)豐富的接口/工具及方便的變成方式 WIN32API.NET3、RTOS中的基本驅(qū)動/BSP驅(qū)動的作用 讓RTOS能正常的運(yùn)行 讓應(yīng)用程序能使用硬件設(shè)備驅(qū)動設(shè)計的基本目標(biāo)硬件的實(shí)現(xiàn)細(xì)節(jié),提供
13、方便的接口方式驅(qū)動分類按功能驅(qū)動系統(tǒng) 處理器 中斷器驅(qū)動外設(shè) 網(wǎng)絡(luò)設(shè)備驅(qū)動 總線驅(qū)動 輸入輸出設(shè)備驅(qū)動器件配置 其他設(shè)備驅(qū)動OS與硬件的關(guān)系層次圖應(yīng)用程序?qū)嵱霉ぞ?協(xié)議棧操作系統(tǒng)驅(qū)動硬件板級支持包BSP建立讓OS運(yùn)行的最基本環(huán)境 初始化CPU內(nèi)部寄存器 設(shè)定RAM工作時序 時鐘驅(qū)動及中斷器驅(qū)動 *串口驅(qū)動(簡單有效的調(diào)試完善OS運(yùn)行的環(huán)境 CACHE/MMU ROM 完善中斷管理 系統(tǒng)總線驅(qū)動)一般啟動流程復(fù)位從指置開始運(yùn)行程序(ROM) 與CPU相關(guān)初始化CPU寄存器/關(guān)中斷/配置時鐘/RAM 初始化OS內(nèi)核開中斷/開MMU啟動用戶進(jìn)程系統(tǒng)啟動IIROM->RAMBootLoader開
14、發(fā)階段的啟動/最終發(fā)布階段的啟動RTOS的基本系統(tǒng)硬件接口CPU地址空間/寄存器外部器BSP-CPU初始化 讓CPU處于最精簡的可控狀態(tài)關(guān)中斷 (其他硬件的干擾)關(guān)緩存,關(guān)閉MMU設(shè)置時鐘頻率(由硬件設(shè)置配合完成)設(shè)置CPU關(guān)鍵寄存器(清零某些寄存器,設(shè)置堆棧等寄存器)正常運(yùn)行 中斷相關(guān)寄存器處理 模式轉(zhuǎn)換 進(jìn)程切換(PC及堆棧切換)CPU的模式 CPU硬件設(shè)計至少兩種模式(模式和用戶模式),由CPU內(nèi)特殊寄存器來指示。 OS的內(nèi)核態(tài)和用戶態(tài)和CPU硬件的模式對應(yīng)模式能所有有限 用戶模式只能發(fā)中斷)(超出范圍則會觸BSP-地址空間OS在內(nèi)核態(tài)下能 所有寄存器 所有地址空間 (典型4G)所有OS
15、在用戶態(tài)下只能有限 有限地址空間(典型0-3G)BSP-地址空間態(tài)的RTOS只工作在 OS系統(tǒng)代碼和應(yīng)用程序具有同等權(quán)限 程序編寫簡單,用戶程序可直接硬件 可靠性差:OS系統(tǒng)代碼及硬件寄存器不受保護(hù)區(qū)分內(nèi)核態(tài)和用戶態(tài)的RTOS 用戶應(yīng)用代碼均運(yùn)行在用戶態(tài) 無法直接配合) 可靠性好大部分硬件(需要操作系統(tǒng)BSP-OS狀態(tài)切換內(nèi)核態(tài)?用戶態(tài) 直接完成用戶態(tài)?內(nèi)核態(tài) 中斷外部中斷/內(nèi)部中斷(實(shí)現(xiàn)系統(tǒng)調(diào)用)BSP-器DRAM 需要配置特定的時序才能正常讀寫 是否啟用Burst模式、工作時鐘ROM 普通EEPROM / NOR FLASH直接可讀數(shù)據(jù)需要特殊命令序列來實(shí)現(xiàn)如何入手BSP編寫透徹的了解硬件
16、結(jié)構(gòu) 熟悉相關(guān)的硬件文檔是基礎(chǔ)方便易用的開發(fā)環(huán)境 調(diào)試器/開發(fā)軟件 交叉編譯參考代碼 熟悉好的參考代碼能達(dá)到事半功倍的效果BSP的開發(fā)及調(diào)試硬件調(diào)試器 JTAG直接LED指示CPU內(nèi)部寄存器 最直觀/快速/簡單的調(diào)試 使用最簡單的設(shè)備(GPIO)串口信息 方便的輸出調(diào)試信息BSP開發(fā)一般步驟1驗證硬件 硬件準(zhǔn)備 連接調(diào)試器(上電后的電壓電流)讀寫CPU內(nèi)部寄存器處理器的輸出端口(GPIO)觀察輸出配置CPU中斷/CACHE/Endian 設(shè)置時鐘 設(shè)置cache為棧(以使用C編寫的代碼)BSP開發(fā)配置RAM初始化RAM 填寫與RAM相關(guān)的CPU內(nèi)寄存器 時序/時鐘/方式:片選 刷新時序/等待時
17、序/讀寫時序 通過調(diào)試器逐個寄存器填寫 部分調(diào)試器支持,填寫多個寄存器 部分調(diào)試軟件支持配置文件,測試RAM填寫多個寄存器單元測試整體測試噪聲測試單地址讀寫測試整塊讀寫測試讀寫測試數(shù)據(jù)(特殊數(shù)據(jù),如逐位置一)BSP開發(fā)-階段驗證確保CPU和RAM工作正常編寫初始化CPU和RAM的代碼并設(shè)置堆棧(一般是匯編代碼)編寫簡單程序驗證(C代碼) 如編寫一段簡單的代碼,用軟件延遲周期性去點(diǎn)亮和關(guān)閉某一個LED C代碼運(yùn)行正常,則操作系統(tǒng)的用以被調(diào)BSP開發(fā) 內(nèi)存管理內(nèi)存的使用方式 多少內(nèi)存供OS使用 是否使用MMU 外設(shè)的內(nèi)存MMU 設(shè)置虛擬地址到物理地址的轉(zhuǎn)換方式塊段頁BSP開發(fā)中斷處理中斷類型 直接
18、連接到CPU的中斷 通過中斷中斷向量表器連接到CPU 為每個中斷源的編寫簡單處理代碼(一般是計算出一個中斷向量)將每個中斷源和OS的中斷處理 匯編代碼直接連接 使用OS提供的連接函數(shù)連接BSP開發(fā)內(nèi)存與中斷開中斷和開MMU 不同的OS有不同的處理時鐘中斷 OS按時間片處理的依據(jù),應(yīng)重點(diǎn)處理BSP開發(fā)集成OS確保前述基本硬件工作正常按照OS的要求編寫接口API比照參考代碼進(jìn)行整合BSP開發(fā)集成OS添加ROM驅(qū)動 最終系統(tǒng)需要燒寫到ROM中 系統(tǒng)啟動方式 Bootloader/Rom->Ram的copy添加串口驅(qū)動 方便調(diào)試Cache和MMU 打開Cache和MMU時,可能會出現(xiàn)問題(調(diào)試變
19、得困難)多核 AMP與SMP4、RTOS的驅(qū)動設(shè)計定義 OS(或應(yīng)用程序)與硬件設(shè)備的接口功能 數(shù)據(jù)傳輸驅(qū)動的接口接口 按照應(yīng)用設(shè)計的接口 必要時可繞過OS,由應(yīng)用直接 簡單/效率較好通用接口 按照OS所要求的通用接口來設(shè)計 一般是類文件操作的接口硬件設(shè)備 標(biāo)準(zhǔn)化的、初始化、卸載設(shè)備通用 內(nèi)存方式:設(shè)備被到一段內(nèi)存空間 基本操作:寄存器的讀寫 各種總線接口:總線的最終由寄存器實(shí)現(xiàn)和中斷 由OS或應(yīng)用發(fā)起中斷/實(shí)時性差 硬件設(shè)備在必要時,以硬件中斷通知CPU 結(jié)構(gòu)相對復(fù)雜 實(shí)時性好數(shù)據(jù)傳輸通用讀寫 通過IO端口逐個數(shù)據(jù)讀寫(效率低)DMA 設(shè)備和內(nèi)存(設(shè)備和設(shè)備)之間直接傳輸數(shù)據(jù),CPU只需發(fā)起
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆吉林省吉林市長春汽車經(jīng)濟(jì)開發(fā)區(qū)第六中學(xué)高一化學(xué)第二學(xué)期期末聯(lián)考試題含解析
- 北京市首都師大附中2025年化學(xué)高二下期末檢測試題含解析
- 獸醫(yī)執(zhí)業(yè)注冊管理辦法
- 材料使用取貨管理辦法
- 出口專用標(biāo)簽管理辦法
- 醫(yī)保藥房售賣管理辦法
- 學(xué)術(shù)質(zhì)量評估
- 網(wǎng)絡(luò)教學(xué)系統(tǒng)設(shè)計與實(shí)施方案
- 江蘇徐州地名管理辦法
- 機(jī)型數(shù)量評審管理辦法
- 社會救助政策培訓(xùn)
- DB3702-T 0009-2020 市民訴求數(shù)據(jù)分析與應(yīng)用規(guī)范
- 坐大巴車安全教育
- 廣西建設(shè)職業(yè)技術(shù)學(xué)院博士高層次人才招考聘用高頻重點(diǎn)提升(共500題)附帶答案詳解
- 軍事訓(xùn)練傷病預(yù)防
- 阿爾伯特;哈伯德-把信送給加西亞
- 2025中級消防設(shè)施操作員作業(yè)考試題及答案(1000題)
- 鐵路貨物運(yùn)價規(guī)則
- 病房突發(fā)事件的應(yīng)急與處理
- 光伏項目運(yùn)維服務(wù)承包合同5篇
- 小學(xué)期末科學(xué)質(zhì)量分析
評論
0/150
提交評論