LR; Disabled, return the original CPSR contents in R0 ARMEnableINT MSRCPSR_c,R0 BXLR 2)任務級任務切換 任務級任務切換函數OS_TasK_Sw()是當前任務因為被阻塞而主動請求CPU高度時被執行的,由于此時的任務切換都是在非異常模式直進行的,因此區別于中斷級別的任務切換。它的工作是先將當前任務的CPU現場保存到該任務的堆棧中,然后獲得最高優先級任務的堆棧指針,從該堆棧中恢復此任務的CPU現場,使之繼續運行,從而完成任務切換。 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
評論