




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章軟件設計東南大學國家專用集成電路系統(tǒng)工程技術研究中心0. 目錄ASIXOS系統(tǒng)介紹ASIXWindows簡介ASIXOS代碼分析1. ASIXOS系統(tǒng)介紹-目錄ASIX平臺ASIXOS的設計ASIXOS內核調度ASIXOS通訊機制中斷管理任務的建立和管理低功耗管理機制ASIX平臺ASIXOS的設計:ASIXOS是ASIC工程中心自主的嵌入式實時操作系統(tǒng)平臺。Kernel兼容μItron標準提供了圖形用戶界面和編程環(huán)境提供模擬器以模擬硬件開發(fā)環(huán)境,加速應用軟件的設計和開發(fā)(VC++)ASIX平臺ASIXOS模塊層次劃分:driversASIXKernelSysTaskTimerTaskFileSysteminternetASIXWindowsASIXGPCApplicationforuserASIXOS內核線程管理,線程間通信中斷管理,內存映射硬件抽象層(HAL)CPU,MMU,系統(tǒng)時鐘中斷控制器系統(tǒng)服務RTC服務網絡服務電話短信服務KVMASIXWindowGUILCD驅動鍵盤驅動筆驅動圖形設備硬件抽象層手寫識別文件系統(tǒng)塊設備字符設備串口驅動LCD,鍵盤,觸摸屏串口其他API應用程序ASIXOS的體系結構GUIAPIFlash驅動FlashASIXOS的設計ASIXOS的平臺:內核(ASIXKernel)時鐘服務任務(TimerTask)和系統(tǒng)服務任務(SysTask)基本圖形庫(ASIXGPC)和圖形用戶界面(ASIXWindows)文件系統(tǒng)(FAT,ASIXFS)和數據庫(BerkeleyDB,ASIXDB)網絡通信協(xié)議(ASIXNetwork,TCP/IP)OS模擬器(ASIXSimulator)ASIXOS的設計基于uITRON3.0標準允許同時最多有255個任務運行采用了靜態(tài)優(yōu)先級的調度策略基于優(yōu)先級的搶占式多任務(8個優(yōu)先級)。優(yōu)先級可以從1到9(數值越低,優(yōu)先級越高)ASIXOS的設計提供大量的通訊和同步機制:信號量事件標志郵箱消息緩沖區(qū)C代碼內核,硬件匯編部分用宏表示ASIXOS的設計AsixOS分為兩大塊,任務管理和非任務管理:任務管理:任務調度任務間通信與同步機制非任務管理:中斷軟定時器ASIXOS的設計系統(tǒng)調用函數接口任務調度任務間通信與同步時鐘管理中斷管理軟定時器管理ASIXOS的設計任務間通信與同步中斷管理時鐘管理任務調度非任務管理ASIXOS內核調度內核調度:任務切換的方式維護的三個任務隊列,以供任務切換:就緒任務隊列g_sReadyQueue一個延遲任務隊列g_sTimeOutTsk等待隊列ASIXOS內核調度就緒任務隊列:AsixOS中任務的優(yōu)先級有9個,從1到9。系統(tǒng)定義了一個全局數組,共有9個單元,分別代表對應的優(yōu)先級。每個優(yōu)先級都維護著一個就緒隊列ASIXOS內核調度AsixOS的調度策略:從最高優(yōu)先級對應的就緒隊列開始找起,如果該隊列不為空,則取它的首部任務作為下一個將要運行的任務。如果隊列為空,則尋找低一級優(yōu)先級的隊列,如此循環(huán)操作ASIXOS內核調度AsixOS的調度機制有如下特點:它是靜態(tài)優(yōu)先級調度。(但提供了系統(tǒng)調用來修改任務優(yōu)先級)。沒有運行時間的概念。所以,低優(yōu)先級的任務只有當高優(yōu)先級的任務主動放棄CPU,它才可能運行。同等優(yōu)先級的任務不能夠輪轉。(但提供了系統(tǒng)調用來將當前任務放到隊列的末尾)。
ASIXOS內核調度延遲任務隊列:AsixOS中維護了一個延遲任務隊列,用來維護那些為了等待某操作而主動或者被動將自己掛起的任務。等到時間一過,系統(tǒng)就會將該任務轉移到就緒隊列中去。具體將在時鐘管理中闡述ASIXOS內核調度等待隊列:多個等待隊列等待隊列是因為取不到相應的信息或者內容,而暫時把自己掛起,以等待所要的信息或者內容的來臨ASIXOS內核調度任務調度有兩種情況:系統(tǒng)調用函數調用int_dispatch()中斷處理函數返回時調用ret_int()兩者不同之處在于構造的調度棧不同調度棧指的是在任務調度前用于保存環(huán)境的棧幀ASIXOS內核調度ASIXOS通訊機制ASIXOS提供了五中通訊機制:信號量(Semaphore)事件標識(EventFlag)郵箱(MailBox)消息緩沖區(qū)(MessageBuffer)內存池(MemoryPool)ASIXOS通訊機制信號量(Semaphore)信號量結構中,有兩個值,ubSmphMax表示引用該信號量的最多任務數;ubSmphCnt表示當前的剩余引用數(即還有多少任務可以使用該信號量)ASIXOS通訊機制信號量(Semaphore)SemaphoretasktasktaskASIXOS通訊機制信號量(Semaphore)的操作:twai_sem
取走信號量:如果仍可引用,則ubSmphCnt--;如果引用已滿(即ubSmphCnt==0),則將當前任務置為TTS_WAI,等待標志為TTW_SEM。將當前任務加入該信號量對應的等待任務隊列中去。ASIXOS通訊機制信號量(Semaphore)的操作:sig_sem
放回信號量:如果沒有任務在等待該信號量,則將ubSmphCnt++;如果有等待的任務,首先取消它的等待狀態(tài),然后將它從g_sTimeOutTsk隊列中刪除,并添加到就緒任務隊列中去。調用系統(tǒng)調度程序int_dispatch。ASIXOS通訊機制事件標識(EventFlag):EventFlagtaskflag_patternwait_patternwait_flag_modeASIXOS通訊機制事件標識(EventFlag):事件標識的數據結構中有如下幾個變量:
uhWaiPtn:正等待的標志位;
uhFlgPtn:已恢復的標志位;bWaiMode:選擇等待的模式(AND全滿足/OR部分滿足/TWF_CLR使用后清位)ASIXOS通訊機制事件標識(EventFlag)的操作:twai_flg
取事件:首先,查看該flag中是否有任務在等待,若有,則返回錯誤(說明只能有一個任務在等待)。如果等待隊列為空,則判斷等待模式:如果等待模式為OR,則檢查uhFlgPtn,只要有一位已經滿足,則返回;這時如果設置了TWF_CLR,則把該位清0;ASIXOS通訊機制事件標識(EventFlag)的操作:twai_flg
取事件:如果等待模式為AND,則檢查uhFlgPtn,只有所有位都滿足,才返回;這時如果設置了TWF_CLR,則把該位清0;如果沒有滿足條件,接下來判斷用戶設置的等待時間:如果等待時間為0,則返回;否則,將該任務加入到該flag的等待隊列中,并標為TTW_FLG;如果等待時間不為無限制,則將該任務加入g_sTimeOverTsk隊列中去。調用系統(tǒng)調度程序int_dispatch
ASIXOS通訊機制事件標識(EventFlag)的操作:set_flg
設置事件:首先將新的標志位或到原來的uhFlgPtn上去;如果沒有等待的任務,則返回;否則,檢查是否符合該任務的等待條件(OR/AND),如果不符合,則返回;ASIXOS通訊機制事件標識(EventFlag)的操作:set_flg
設置事件:若符合條件,則清除該任務的TTS_WAI態(tài),及TTW_FLG標志。將已有的標志賦給任務的pFlgptn;如果設置了TWF_CLR,則將uhFlgPtn清0;將該任務從g_sTimeOverTsk隊列中刪除,添加到就緒任務隊列;調用系統(tǒng)調度程序int_dispatch。ASIXOS通訊機制事件標識(EventFlag)的操作:clr_flg
清除事件標識:強制置位,只是賦值,不檢查是否有等待的任務ASIXOS通訊機制郵箱(MailBox)MailBoxtasktaskT_MSGT_MSGmsgcont[10]msgcont[10]中斷管理AsixOS中,正如通常的系統(tǒng)一樣,維護了一個中斷向量表,里面填寫著各個中斷處理程序的入口地址當發(fā)生中斷時,系統(tǒng)會自動跳轉到對應的處理程序中中斷管理中斷嵌套AsixOS支持中斷的嵌套。比如,中斷A的處理程序正在運行,更高級別的中斷B發(fā)生,這時系統(tǒng)運行中斷B的處理程序。但是,當中斷B的處理程序結束后,系統(tǒng)并不進行調度,而是繼續(xù)運行中斷A的處理程序。直到所有的中斷都被處理完了,才會進行調度,以決定下一步是哪個任務來運行中斷管理中斷處理函數的底層驅動編寫格式:中斷入口函數沒有入口參數中斷入口函數沒有返回值,因此,它被聲明為void型進入中斷入口函數,現把自己的中斷屏蔽,同時中斷嵌套數加1推出中斷入口函數,打開自己的中斷屏蔽,同時中斷嵌套數減1任務的建立和管理任務(TASK):就是一個擁有自己堆棧的函數任務建立時:分配自己的ID號確定優(yōu)先級建立堆棧任務的建立和管理系統(tǒng)維護一個就緒任務隊列,其中優(yōu)先級最高的任務獲得運行每個任務都有一個ID,規(guī)定任務ID從1到255,也就是最多能有255個任務可以同時運行任務的優(yōu)先級規(guī)定從1到9,數值越小,優(yōu)先級越高同等優(yōu)先級的任務將被排列在該優(yōu)先級對應的就緒隊列中可以通過系統(tǒng)調用來改變任務在就緒隊列中的位置或者它的優(yōu)先級任務的建立和管理任務的建立和管理AsixOS中,任務有六種狀態(tài):RUNREADYWAITWAIT_SUSPENDSUSPENDDORMANT任務的建立和管理AsixOS中:任務剛被創(chuàng)建時,處于DORMANT狀態(tài)等到任務被啟動,變?yōu)镽EADY狀態(tài)時,才有機會運行任務的建立和管理WAITREADYRUNWAIT-SUSPENDSUSPENDDORMANT任務的建立和管理WAIT狀態(tài):產生:等待一個事件(可能由任務間通信引起)或者自己執(zhí)行一個系統(tǒng)調用(比如申請延遲)變化:事件完成(或到達)后
READY被其他程序SUSPENDWAIT_SUSPEND被終止
DORMANT任務的建立和管理WAIT_SUSPEND狀態(tài):產生:處于WAIT態(tài)的任務被其他任務SUSPEND變化:WAIT態(tài)解除
SUSPENDSUSPEND態(tài)解除
WAIT被終止
DORMANT注:其他任務再SUSPEND它,還是WAIT_SUSPEND。任務的建立和管理SUSPEND狀態(tài):產生:被其他任務SUSPEND變化:其他任務恢復它
READY被終止
DORMANT注:其他任務再SUSPEND它,還是SUSPEND。低功耗管理機制利用SEP3203提供的PMU模塊來進行功耗上的管理:SlowNormalIdleSleep低功耗管理機制2. ASIXWindows簡介-目錄ASIXWindows介紹ASIXWindows的特點ASIXWindows的窗口處理函數ASIXWindows
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年銀行從業(yè)資格考試同步學習試題及答案
- 投資咨詢工程師考試全覆蓋試題及答案
- 人力資源管理師技巧提升考試試題及答案
- 2024年消防事故案例分析試題及答案
- 2024中醫(yī)考試復習資料試題及答案
- 黑龍江省七臺河市勃利縣達標名校2025屆初三下學期開學質檢物理試題含解析
- 學前家庭教育學
- 黑龍江省大慶市名校2025屆初三第三次模擬練習物理試題含解析
- 日記寫作技巧與練習試題及答案
- 黑龍江省肇東一中2025年高三第四次月考生物試題試卷含解析
- 中小學校長在教師大會上講話:以八項規(guī)定精神引領教育高質量發(fā)展根深?重明?規(guī)立?法新?行遠
- 食品安全管理制度打印版
- GB/T 45251-2025互聯網金融個人網絡消費信貸貸后催收風控指引
- 關于除顫儀的試題及答案
- 2025年北京電子科技職業(yè)學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 第一屆貴州技能大賽銅仁市選拔賽平面設計技術文件
- 2025年陜西農業(yè)發(fā)展集團有限公司(陜西省土地工程建設集團)招聘(200人)筆試參考題庫附帶答案詳解
- 2024-2025學年度一年級第二學期月考第一二單元語文試題(含答案)
- GB/T 6433-2025飼料中粗脂肪的測定
- 【MOOC期末】《英美文學里的生態(tài)》(北京林業(yè)大學)期末中國大學慕課MOOC答案
- 2024年共青團入團考試測試題庫及答案
評論
0/150
提交評論