freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm內(nèi)核的嵌入式系統(tǒng)開發(fā)(編輯修改稿)

2025-06-10 20:16 本頁面
 

【文章內(nèi)容簡介】 理器匯編完成。 uCOSII 的全部源代碼量大約是 6000- 7000 行,一共 15 個文件。將 uCOSII 移植到 ARM處理器上,只需要修改三個和 ARM 體系結(jié)構(gòu)相關(guān)的文件,代碼量大約是 500 行。 應(yīng) 用 軟 件( 用 戶 代 碼 )u C O S I I( 與 處 理 器 類 型 無 關(guān) 的 代 碼 )O S _ C O R E . CO S _ F L A G . CO S _ M B O X . CO S _ M E M . CO S _ M U T E X . CO S _ Q . CO S _ S E M . CO S _ T A S K . CO S _ T I M E . Cu C O S _ I I . Cu C O S _ I I . Hu C O S I I 配 置 文 件( 與 應(yīng) 用 程 序 有 關(guān) )O S _ C F G . HI N C L U D E S . H移 植 u C / O S I I( 與 處 理 器 類 型 有 關(guān) 的 代 碼 )O S _ C P U . HO S _ C P U _ A . A S MO S _ C P U _ C . CC P U 定 時 器 1. 文件 ? 數(shù)據(jù)類型定義 這部分修改是和所用的編譯器相關(guān)的,不通的編譯器會使用不同字節(jié)來表示同一數(shù)據(jù)。 ? 堆棧單位 因為處理器現(xiàn)場的寄存器在任務(wù)切換時 都將會保存在當(dāng)前運行任務(wù)的堆棧中,所以O(shè)S_STK 數(shù)據(jù)類型應(yīng)該是和處理器的寄存器長度一致的。 ? 堆棧增長方向 堆棧有高地址向低地址增長,這個也是和編譯器有關(guān)的,當(dāng)進行函數(shù)調(diào)用時,入口參數(shù)和返回地址一般都會保存任務(wù)的堆棧中,編譯器的編譯選項和由此生成的 堆棧指令就會決定堆棧增長方向。 ? 宏定義 包括開關(guān)中斷的宏定義,以及進行任務(wù)切換的宏定義 文件 uCOSII 的移 植范例要求用戶編寫 10 蓋簡單的 C 函數(shù)。 OSTaskStkInit(); OSTaskCreateHook(); OSTaskDelHook(); OSTaskSwHook(); OSTaskIdleHook(); OSTaskStartHook(); OSTimeTickHook(); OSInitHookBegin(); OSInitHookEnd(); OSTCBInitHook(); ? 任務(wù)堆棧初始化 這里涉及到任務(wù)初始化時的一個堆棧設(shè)計,也就是在堆棧增長方向上如何定義每個需要保存的寄存器位置,這 樣在 ARM 體系結(jié)構(gòu)下,任務(wù)堆??臻g由高至低依次將保存著 PC, Lr, r12, r11, …… .r1, r0, CPSR、 SPSR,這里需要說明兩點,一是當(dāng)前任務(wù)初始化完成后, OSTaskStkInit 返回新的堆棧指針 stk,在 OSTaskCreate()執(zhí)行的時候會調(diào)用 OSTaskStkInit 的初始化過程,然后通過 OSTCSInit()函數(shù)調(diào)用將返回的 SP 指針保存到該任務(wù)的 TCB 塊中。 ? 系統(tǒng)的 hook 函數(shù) 沒有特殊要求,則只需簡單的將它們都實現(xiàn)為空函數(shù)就可以了。 文件 ? OSStatHighRdy() 此函數(shù)是在 OSStart()多任務(wù)啟動之后,負責(zé)從最高優(yōu)先級任務(wù)的 TCB 控制塊中獲得該任務(wù)的堆棧指針 SP,通過 SP 依次將 CPU 現(xiàn)場恢復(fù),這時系統(tǒng)就將控制權(quán)交給用戶創(chuàng)建的該任務(wù)進程,直到該任務(wù)被阻塞或者被其它更高優(yōu)先級的任務(wù)搶占CPU。該函數(shù)僅僅在多任務(wù)啟動時被執(zhí)行一次,用來啟動第一個,也就是最高優(yōu)先級的任務(wù)執(zhí)行,之后多任務(wù)的電鍍和切換就是有下面的函數(shù)來實現(xiàn)。 ? OSCtxSw 任務(wù)級的上下文切換,它是當(dāng)任務(wù)因為被阻塞而主動請求 CPU 調(diào)度時被執(zhí)行,由于此時的任務(wù)切換都是在異常模式下進行的,因為區(qū)別于中 斷級別的任務(wù)切換。它的工作是先將當(dāng)前任務(wù)的 CPU 現(xiàn)場保存到該任務(wù)堆棧中,然后獲得最高優(yōu)先級任務(wù)的堆棧指針,從該堆棧中回復(fù)任務(wù)的 CPU 現(xiàn)場,使之繼續(xù)執(zhí)行,這樣就完成一次任務(wù)的切換。 ? OSIntCtxSw() 中斷級的任務(wù)切換,它是在時鐘中斷 ISR(中斷服務(wù)例程)中發(fā)現(xiàn)高優(yōu)先級任務(wù)等待的時鐘信號到來,則需要在中斷退出后并不返回中斷服務(wù),而是直接調(diào)度就緒的高優(yōu)先級任務(wù)執(zhí)行。這樣做的目的是為了能夠盡快讓高優(yōu)先級的任務(wù)得到響應(yīng),保證系統(tǒng)的實時性。它的原理基本上與任務(wù)級的切換相同,但是由于進入中斷時已經(jīng) 保存了被中斷任務(wù)的 CPU現(xiàn)場 ,因此這里就不用再進行類似
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1