1、將ucos-ii移植到arm9開發板上
1)搞清應用程式(user子目錄)、ucos-ii核心檔案(ucosii目錄)、移植檔案(ports子目錄)和bsp(ports子目錄)之間的關係。
2)移植檔案(ports子目錄檔案)介紹
bsp.c:os_cpu_excepthndlr()使用者編寫的中斷處理函式,
myinithookbegin()任務初始化時的鉤子函式 完成初始化工作;
startup.s:晶元上電後的初始化工作;
os_cfg.h:為ucos-ii定義配置常量;
os_cpu.c:自定義資料型別,
關閉中斷os_enter_critical(),
恢復cpsr暫存器狀態os_exit_critical(),
任務級的切換呼叫巨集函式 os_task_sw(),
使用者需要編寫的異常處理函式 os_cpu_excepthndlr();
os_cpu_c.c:「鉤子」函式
osinithookbegin() 自定義的系統初始化函式,
ostaskstkinit()完成任務的入棧操作,
os_cpu_a.asm:osstarthignrdy函式 出棧操作,osctxsw 和 osintctxsw **段。
2、ucos-ii核心與面向任務程式設計
1)核心os_core.c
(1)任務控制塊os_tcb
(2)事件控制塊os_event
(3)就緒表osrdygrp和osrdytb1
(4)空閒任務os_taskidlehook()和統計任務os_taskstat()
(5)時鐘節拍 中斷服務程式呼叫 ostimetick()
2)任務os_task.c
(1)ostaskcreat() 和 ostaskcreatext() 任務建立
(2)ostaskdelreq() 和 ostaskdel() 任務退出請求 和 執行
(3)ostasknameset()和 ostasknameget()任務名字設定 和 讀取
(4)ostasksuspend() 和 ostaskresume() 任務掛起 和 重啟
(5)ostaskquery() 和 ostaskchangeprio()
3)時間os_time.c
(1)ostimedly()
(2)ostimedlyhmsm()
(3)ostimeget()
(4)ostimetick()
本文出自 「mr~鐘」 部落格,請務必保留此出處
UCOSII原理與應用 就緒表
為系統處於就緒狀態的任務分配cpu是多工作業系統的核心工作。涉及兩項技術 1 判斷哪些任務處於就緒狀態。2 任務排程,也就是通過乙個演算法在就緒任務中確定應該,馬上執行的任務,作業系統用於負責這下工作的程式模組叫做排程器。從任務狀態轉化圖可以看到,系統總是從處於就緒狀態的任務來選擇乙個任務執行。所以...
嵌入式實時作業系統ucos ii 原理與應用(六)
第七章 動態記憶體管理 7.1 記憶體控制塊 c os 對記憶體進行兩級管理,即把乙個連續的記憶體空間分為若干各分割槽,每個分割槽分為若干個大小相等的記憶體塊。作業系統以分割槽為單位來管理動態記憶體,而任務以記憶體塊為單位來獲取和釋放動態記憶體。7.1.1 可動態分配記憶體劃分 1.記憶體塊 c o...
uc OS II移植中軟體中斷的理解與應用
1.軟體中斷swi swi software interrupt 軟體中斷,由使用者定義的中斷指令.可以用於使用者模式下的程式呼叫特權操作指令.在實時作業系統中可以通過該機制實現系統呼叫.乙個 swi 所做的一切就是把模式改變成超級使用者並設定 pc 來執行在位址 08 處的下乙個指令 程式設計異常...