uCos II原理與ARM應用程式設計(一)

2021-06-23 00:52:32 字數 1260 閱讀 6399

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 處的下乙個指令 程式設計異常...