新聞中心

uC/OSII移植步驟

作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏
; OS_CPU_FIQ_ISR_Handler();
MOVLR, PC
BXR0
MSRCPSR_c, #(NO_INT | SVC32_MODE) ; Change to SVC mode
LDRR0,OS_IntExit; OSIntExit();
MOVLR, PC
BXR0; RESTORE NEW TASK'S CONTEXT
LDMFDSP!, {R4}; Pop new task's CPSR
MSRSPSR_cxsf, R4
LDMFDSP!, {R0-R12,LR,PC}^; Pop new task's context
4)OSStartHighRdy()函數(shù)
該函數(shù)是在OSStart()多任務(wù)啟動后,負(fù)責(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ù)。
OSStartHighRdy
MSRCPSR_cxsf, #0xD3; Switch to SVC mode with IRQ and FIQ disabled
LDRR0, ??OS_TaskSwHook


關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉