嵌入式操作系統移植說明_第1頁
嵌入式操作系統移植說明_第2頁
嵌入式操作系統移植說明_第3頁
嵌入式操作系統移植說明_第4頁
嵌入式操作系統移植說明_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式實時操作系統 uCOS 嵌入式實時操作系統1. 實時操作系統定義,特點,性能指標2. 實時操作系統現狀3. uCOS操作系統簡介4. uCOS操作系統移植操作系統主要類型實時操作系統實時操作系統 (VxWorks、eCos、uCOS、FreeOS等)網絡操作系統網絡操作系統 (Linux, UNIX,BSD, Windows ServerMac , OS X Server, Novell NetWare等)嵌入式操作系統嵌入式操作系統 (Linux、Android、IOS、WinCE)桌面操作系統桌面操作系統 (MAC OS、Windows、Linux)服務器操作系統服務器操作系統 (L

2、inux,UNIX,BSD,Windows Server, Mac OS X Server,Novell NetWare等)主要主要類型:類型:實時操作系統定義實時系統定義:實時系統定義:實時操作系統(RTOS)是指當外界事件或數據產生時,能夠及時接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統做出快速響應,并控制所有實時任務協調一致運行的操作系統。要點:要點:1、對外部事件或數據快速處理。2、對處理結果能夠在規定時間內快速響應。3、讓所有的實時任務協調一致的運行。實時操作系統特點嵌入式實時系統特點:嵌入式實時系統特點:(1)對外部事件作出反應的時間是確

3、定的、可重復實現的,系統響應時間都是可預測的。(2)具有處理異步并發事件的能力。(3)具有出錯處理和自動復位功能。(4)可裁剪、可移植,適用于多種處理器(5)具有多任務執行、調度能力,能進行任務間通訊、消息傳遞等實時操作系統性能指標系統性能指標:系統性能指標:中斷延遲時間; 中斷延遲時間是指從中斷發生到系統獲知中斷,并且開始執行中斷服務程序所需要的最大滯后時間中斷響應時間; 中斷響應時間是指從中斷發生到開始執行用戶中斷服務程序的第一條指令之間的時間中斷恢復時間; 中斷恢復時間是用戶中斷服務程序結束后回到被中斷代碼之間的時間實時操作系統性能指標內核最大關中斷時間 內核在執行一些臨界區的代碼時采取

4、了關中斷,即執行臨界區代碼所用時間任務上下文切換時間 任務上下文切換是指 的控制權由運行任務轉移到另外一個就緒任務時所發生的時間任務響應時間 任務響應時間是指從任務對應的中斷產生到該任務真正開始運行這一過程所花費的時間。任務響應時間又稱調度延遲。系統調用的執行時間 調用系統函數所執行的時間。實時操作系統性能指標實時操作系統現狀從20世紀七十年代單片機的出現到各式各樣的嵌入式微處理器,微控制器的大規模應用,嵌入式系統已經有了近30年的發展歷史。最早的單片機是Intel公司的8048,它出現在1976年。Motorola同時推出了68HC05,Zilog公司推出了Z80系列,這些早期的單片機均含有

5、256字節的RAM、4K的ROM、4個8位并口、1個全雙工串行口、兩個16位定時器。之后在80年代初,Intel又進一步完善了8048,在它的基礎上研制成功了8051,這在單片機的歷史上是值得紀念的一頁,迄今為止,51系列的單片機仍然是最為成功的單片機芯片,在各種產品中有著非常廣泛的應用。實時操作系統現狀從80年代早期開始,嵌入式系統的程序員開始用商業級的“操作系統”編寫嵌入式應用軟件,這使得可以獲取更短的開發周期,更低的開發資金和更高的開發效率,“嵌入式系統”真正出現了。確切點說,這個時候的操作系統是一個實時核,這個實時核包含了許多傳統操作系統的特征,包括任務管理、任務間通訊、同步與相互排斥

6、、中斷支持、內存管理等功能。90年代以后,隨著對實時性要求的提高,軟件規模不斷上升,實時核逐漸發展為實時多任務操作系統(RTOS),并作為一種軟件平臺逐步成為目前國際嵌入式系統的主流。這時候更多的公司看到了嵌入式系統的廣闊發展前景,開始大力發展自己的嵌入式操作系統。如PalmOS,WinCE,嵌入式Linux,Lynx,Nucleux,以及國內的Hopen,DeltaOs等嵌入式操作系統。實時操作系統現狀RTOS在嵌入式系統設計中的主導地位已經確定,越來越多的工程師使用RTOS,更多的新用戶愿意選擇購買而不是自己開發。我們注意到,RTOS的技術發展有以下一些變化:1新的處理器越來越多,RTOS

7、自身結構的設計更易于移植,以便在短時間內支持更多種微處理器。2開放源碼之風已波及RTOS廠家。相當多的RTOS廠家出售RTOS時,就附加了源程序代碼并含生產版稅。3后PC時代更多的產品使用RTOS,它們對實時性要求并不高,如手持設備等。微軟公司的WinCE, Plam OS, Android, IOS等產品就是順應這些應用而開發出來的。5嵌入式Linux已經在消費電子設備中得到廣泛應用。實時操作系統現狀RTOS 有名的廠家:1. Green Hills Software INTEGRITY2. Wind River VxWorks3. QNX Neutrino4. FreeRTOS5. Mic

8、rium C/OS-II, III6. Windows CE7. TI-RTOS Kernel (previously called DSP/BIOS)RTOS RTOS 應用趨勢OS OS 用戶興趣調查uCOSuCOS 簡介uC/OS II(Micro Control Operation System Two)是一個可以基于ROM運行的、可裁減的、搶占式、實時多任務內核,具有高度可移植性,特別適合于微處理器和控制器,與很多商業操作系統性能相當的實時操作系統(RTOS)。C/OS-II 的前身是C/OS,最早出自于1992 年美國嵌入式系統專家Jean J.Labrosse 在嵌入式系統編程雜

9、志的5 月和6 月刊上刊登的文章連載,并把C/OS 的源碼發布在該雜志的B B S 上。 目前最新版本 C/OS-III http:/ 支持芯片類型ARM (Generic)ARM Cortex-A5ARM Cortex-A8ARM Cortex-A9ARM Cortex-M0ARM Cortex-M3ARM Cortex-M4ARM Cortex-M7ARM Cortex-R4ARM7ARM9Altera NIOS-IIAnalog Devices BlackfinAtmel AVR32Atmel AVR8MIPS32 M4KMicrochip PIC24/30/33Microchip PI

10、C32 (MIPS32-M4K)uCOSuCOS 支持芯片類型Freescale 68HC08Freescale 68HC12Freescale 68HC16Freescale ColdfireFreescale Core603EFreescale DSP568xxFreescale M.COREFreescale M68000Freescale M683xxFreescale MCF5272Freescale MPC5200Freescale MPC55xxFreescale MPC56xxFreescale MPC8xxFreescale PPC555Freescale S12XE Pag

11、edFreescale StarCoreuCOSuCOS 支持芯片類型Renesas 78KRenesas H8Renesas M16CRenesas M32CRenesas R32CRenesas RL78Renesas RX100Renesas RX200Renesas RX600Renesas RX700Renesas SuperH RISCRenesas V850Renesas V850E2MRenesas V850E2SRenesas V850ESSparc Leon3Tensilica XtensaTexas Instruments MSP430WindowsXilinx Micr

12、o-BlazeuCOS 內核組成C/OS-II可以大致分成核心、任務處理、時間處理、任務同步與通信,CPU的移植等5個部分。1) 核心部分(OSCore.c) :是操作系統的處理核心,包括操作系統初始化、操作系統運行、中斷進出的前導、時鐘節拍、任務調度、事件處理等多部分。能夠維持系統基本工作的部分都在這里。2) 任務處理部分(OSTask.c) :任務處理部分中的內容都是與任務的操作密切相關的。包括任務的建立、刪除、掛起、恢復等等。因為C/OS-II是以任務為基本單位調度的,所以這部分內容也相當重要。3) 時鐘部分(OSTime.c) :C/OS-II中的最小時鐘單位是timetick(時鐘節

13、拍)。任務延時等操作是在這里完成的。uCOSuCOS 內核組成4) 任務同步和通信部分: 為事件處理部分,包括信號量、郵箱、消息隊列、事件標志等部分;主要用于任務間的互相聯系和對臨界資源的訪問。5) 與CPU的接口部分: 是指C/OS-II針對所使用的CPU的移植部分。由于C/OS-II是一個通用性的操作系統,所以對于關鍵問題上的實現,還是需要根據具體CPU的具體內容和要求作相應的移植。這部分內容由于牽涉到SP等系統指針,所以通常用匯編語言編寫。主要包括中斷級任務切換的底層實現、任務級任務切換的底層實現、時鐘節拍的產生和處理、中斷的相關處理部分等內容。uCOSuCOS 架構信號量、互斥信號量、

14、事件標識、消息郵箱、消息隊列、任務管理、固定大小內存塊管理、時間管理移植相關,任務切換,入棧,出棧,中斷關斷、開啟,系統時鐘中斷服務程序等任務調度方式前后臺系統任務調度方式多任務系統uCOSuCOS操作系統移植中斷向量表中斷過程,PC、PSW值保存及恢復過程軟中斷、硬中斷匯編語言任務狀態入棧、出棧基礎基礎知識:知識:注:以后章節涉及內容均依據Renesas V850ES/Fx3 手冊和相關的匯編手冊作為參考uCOSuCOS操作系統移植中斷向量中斷向量表表中斷源,中斷名,中斷優先級,中斷碼,中斷服務程序入口地址,中斷控制寄存器。有些中斷向量固定到ROM中,有些中斷向量固定到RAM中uCOSuCO

15、S操作系統移植中斷過程,中斷過程,PCPC、PSWPSW值保存及恢復值保存及恢復過程過程uCOSuCOS操作系統移植匯編語言匯編語言命令字 源操作數, 目的操作數 stsr 5, r1;store special register 5 to r1 ldsr r1, 5 ; load special register r1 to 5 mov #_OSRunning, r11; move “OSRunning” address to r11 st.b r2, 0r11; store byte r2 to r11 address mov #_OSTCBHighRdy, r11; ld.w 0r11

16、, r11; ld.w 0r11 , sp; jarl _OSTaskSwHook, lp ; jmp lp; cmp 0 x1, r2; bne b ;uCOSuCOS操作系統移植任務狀態任務狀態uCOSuCOS操作系統移植任務切換任務切換從圖中可以看出任務切換有兩個通路1、以定時器中斷為基礎通過調用_OSIntCtxSw來實現任務調度2、以OS_Sched()調用trap指令來實現軟中斷為基礎,通過調用_OSCtxSw來實現任務調度注:圖中帶顏色部分均是與移植相關的uCOSuCOS操作系統移植入棧,出棧,相關寄存器入棧,出棧,相關寄存器棧的特點是FILO(先入后出)有的棧從高地址向低地址增

17、長,有的棧則相反,具體跟處理器有關。棧的操作一般發生在函數調用前和后,中斷響應前和后。函數在調用前先將主調函數的寄存器值、PC、PSW值等保存到棧中,然后調用被調函數,在被調函數返回時,在將之前保存在棧中的內容恢復到相應的寄存器、PC、PSW中。這樣主調函數才能繼續執行。對于無操作系統的任務來說,棧的使用是由編譯器編譯決定的。對于多任務操作系統來說,棧空間是由任務創建者手動創建,這就要求操作系統在任務切換時能夠準確知道任務棧的首地址及棧空間的大小,因此棧的操作對于操作系統移植能否成功起關鍵性作用。uCOSuCOS操作系統移植移植準備移植準備在官方網站根據自己CPU選擇相近的處理器型號進行源碼下

18、載http:/ 文件里主要定義了一些重要的宏,如: OS_CTX_SAVE, 入棧操作 OS_CTX_RESTORE, 出棧操作 OS_ISR_ENTER , 通知內核已經進入中斷,中斷計數器自增 OS_ISR_EXIT ,通知內核已經退出中斷,如果有任務就緒,任務切換在這里發生,中斷計數器自減uCOSuCOS操作系統移植移植準備移植準備os_cpu_a.s 定義了一些重要的函數,如任務切換函數,中斷響應函數等,如下:_OS_CPU_SR_Save:中斷到來時,將PSW值保存到R1中,并關中斷DI_OS_CPU_SR_Restore:中斷結束時,將R1中的值恢復到PSW中_OSStartHig

19、hRdy:系統初始化后,首先要調度的第一個優先級最高的任務_OSCtxSw:任務切換函數,由OS_Sched()調用OS_TASK_SW()產生軟中觸發_OSIntCtxSw:由時鐘中斷觸發的任務切換函數_OS_CPU_TickHandler:時鐘中斷服務程序uCOSuCOS操作系統移植移植要素移植要素1、時鐘中斷向量表、時鐘中斷向量表2、時鐘中斷服務程序、時鐘中斷服務程序3、時鐘初始化、時鐘初始化4、軟中斷向量表、軟中斷向量表5、軟中斷服務程序、軟中斷服務程序6、軟中斷觸發程序、軟中斷觸發程序7、 os_cpu_a.s 中的函數8、 os_cpu_a.inc中的函數9、os_cpu.h 中軟

20、中斷觸發中軟中斷觸發#define OS_TASK_SW() _asm(trap 0 x00)uCOSuCOS操作系統移植時鐘中斷向量時鐘中斷向量表表為了時鐘不受影響的產生中斷,中斷優先級必須設置為最高時鐘時鐘中斷服務程序中斷服務程序 新建os_int_tick.s 文件,其內容為: .extern _OS_CPU_TickHandler .section INTTAA0CC0, text - INTTAA0CC0 interrupt vector 180HINT_TAA0CC0: jr _OS_CPU_TickHandler時鐘時鐘初始化初始化 新建os_time_tick_init.c , os_time_tick_init.h 文檔 TAA0_Init();uCOSuCOS操作系統移植軟中斷向量軟中斷向量表表軟中斷服務程序軟中斷服務程序 .extern _OSCtxSw .section TRAP00, text- TRAP interrupt vector 00_TRAP_INT40: jr _OSCtxSw 軟中斷觸發程序軟中斷觸發程序 os_cpu.h#define OS_TASK_SW() _asm(trap 0 x00)uCOSuCOS操作系統移植os_cpu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論