; 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()函數 該函數是在OSStart()多任務啟動后,負責從最高優先級任務的TCB控制塊中獲得該任務的堆棧指針SP通過SP依次將CPU現場恢復。這時系統就將控制權交給用戶創建的該任務進程,直到該任務被阻塞或者被更高優先級的任務搶占CPU。該函數僅僅在多任務啟動時被執行一次,用來啟動第一個也即最高優先級任務。 OSStartHighRdy MSRCPSR_cxsf, #0xD3; Switch to SVC mode with IRQ and FIQ disabled LDRR0, ??OS_TaskSwHook
評論