新聞中心

uC/OSII移植步驟

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏
LR; Disabled, return the original CPSR contents in R0
ARMEnableINT
MSRCPSR_c,R0
BXLR
2)任務(wù)級(jí)任務(wù)切換
任務(wù)級(jí)任務(wù)切換函數(shù)OS_TasK_Sw()是當(dāng)前任務(wù)因?yàn)楸蛔枞鲃?dòng)請(qǐng)求CPU高度時(shí)被執(zhí)行的,由于此時(shí)的任務(wù)切換都是在非異常模式直進(jìn)行的,因此區(qū)別于中斷級(jí)別的任務(wù)切換。它的工作是先將當(dāng)前任務(wù)的CPU現(xiàn)場(chǎng)保存到該任務(wù)的堆棧中,然后獲得最高優(yōu)先級(jí)任務(wù)的堆棧指針,從該堆棧中恢復(fù)此任務(wù)的CPU現(xiàn)場(chǎng),使之繼續(xù)運(yùn)行,從而完成任務(wù)切換。
OSCtxSw
; SAVE CURRENT TASK'S CONTEXT
STMFDSP!, {LR}; Push return address
STMFDSP!, {LR}
STMFDSP!, {R0-R12}; Push registers
MRSR4,CPSR; Push current CPSR
TSTLR, #1; See if called from Thumb mode
ORRNER4,R4, #0x20; If yes, Set the T-bit


關(guān)鍵詞:

評(píng)論


相關(guān)推薦

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

關(guān)閉