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
评论