嵌入式系統(tǒng)通用的應用軟件結構研究_第1頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)通用的應用軟件結構研究系統(tǒng)的面對應用特性,使得大多數(shù)程序員沉陷于不同的應用中。在進入新的一輪開發(fā)后,往往惟獨一些容易的閱歷可供參考。為了加快應用的開發(fā)進度,有須要討論一種統(tǒng)一的應用軟件結構,使開發(fā)人員能夠通過容易模式套用,簡化大量系統(tǒng)討論方面的工作,以加快嵌入式開發(fā)人員對新系統(tǒng)的理解和用法。操作系統(tǒng)c/os-ii和ecos(embedded configurable os)是我在研發(fā)過程中用法過的兩個系統(tǒng)。這兩個源碼藏匿的系統(tǒng)是我們討論的基礎。開發(fā)平臺依次是pc機和ep7212開發(fā)板。1 c/os-ii內核對于一個嵌入式系統(tǒng)內核,我們最關懷的是:任務調度、內存管理準時間特性等。這里,

2、只介紹與多任務編程聯(lián)系最多的任務調度和內存管理。1.1 任務調度任務的狀態(tài)有休眠、就緒及運行幾種。任務調度就是遵循一定的原則,使多個任務共同用法同一處理機的過程。這一過程主要是通過對任務控制塊(tcb)的管理來實現(xiàn)的。當一個任務建立時,c/os-ii系統(tǒng)為其所對應的os_tcb賦值;當任務的cpu用法權被剝奪時,系統(tǒng)用os_tcb來保存該任務的狀態(tài);當任務重新得到cpu用法權時,系統(tǒng)就可通過任務控制埠來使任務從被中斷處繼續(xù)執(zhí)行下去。在c/os-ii中,tcb內包含如下基本項:*ostcbstkptr是一個指向當前任務棧頂?shù)闹羔槪ㄟ^允許每個任務擁有自己的棧來減小系統(tǒng)的內存開銷;*ostcbne

3、xtostcbprev用于任務控制塊的雙重鏈接;*ostcbdly用于任務延時或超時限制;*ostcbstat任務的狀態(tài)字,0表示就緒態(tài);*ostcbprio任務的優(yōu)先級,值越小,優(yōu)先級越高。在c/os-ii中,還有兩個與任務調度相關的結構就緒表和估級判定表。就緒表中有兩個變量用來存放每個任務的就緒標記。通過分組與優(yōu)先級表中的項實現(xiàn)一一對應,進而確定進入就緒態(tài)的優(yōu)先級最高的任務。任務調度算法原型:*關中斷;*取優(yōu)先級最高的就緒任務;*若不是當前任務,則舉行任務切換;*開中斷。任務切換中兩步完成:將被掛起的任務的微處理器寄存器堆入棧,然后,將較高優(yōu)先級的任務的寄存器值從棧中復原到寄存器中。1.2

4、 內存管理在嵌入式系統(tǒng)中,為了更高效地用法內存,除了常規(guī)的malloc()和free()外,通常提供不同的內存組織形式,以滿足特別應用的需求。c/os-ii中,操作系統(tǒng)把延續(xù)的大塊內存按分區(qū)來管理,每個分區(qū)中包含整數(shù)大小相同的內存塊。利用這種機制,c/os-ii對malloc()和free()舉行改造,使得它們可分配和釋放固定大小的內存塊,并且使這兩個函數(shù)的執(zhí)行時光也固定下來。為了用法戶能得到需大小的內存塊,在一個系統(tǒng)中可以多個內存分區(qū),應用程序可以從不同的內存分區(qū)中取得不同大小的內存塊。唯一要注重的是,不同的內存塊在釋放時必需重新放回它以前所屬的內存分區(qū)。采納上述的內存管理算法,解決了內存碎

5、片的問題。為了跟蹤每一個內存分區(qū),c/os-ii用法了內存控制塊的數(shù)據(jù)結構,主要有:osmemaddr指向內存分區(qū)起始地址的指針;osmemfreelist指向下一個空閑控制塊或下一個空閑內存塊的指針;osmemblksize內存分區(qū)中內存塊的大小,是用戶建立該內存分區(qū)時指定的;osmemb1ks內存分區(qū)中總的內存塊數(shù)量,是用戶建立該內存分區(qū)時指定的;osmemnfree內存分區(qū)中當前可以得到的空閑內存塊數(shù)量。在c/os-ii中,也可以用法常規(guī)的malloc()和free()內存管理函數(shù)來增加其可移植性,但在用法更嚴格的場合,應用法系統(tǒng)提供的特別的內存管理。2 應用軟件2.1 應用軟件原型對于8051系統(tǒng)的編程,最基本的架構是一個無限循環(huán),應用的全部事情基本上都是在這個超循環(huán)中實現(xiàn)的。在這種系統(tǒng)中,系統(tǒng)上惟獨一個任務在運行,應用就是囫圇系統(tǒng),而囫圇系統(tǒng)就是一個應用

溫馨提示

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

評論

0/150

提交評論