移植ucosII到STM32F103ZE(五)
這個文件包含著必須用匯編寫的代碼。
申明這些變量是在其他文件定義的,本文件只做引用(有幾個好像并未引用,不過沒有關系)。
替換后的 PPendSV中斷
聲明這些函數是在本文件中定義的。EXPORT這個關鍵字是跟編譯器有關的,能被keil識別,但不能被IAR 識別。
NVIC_INT_CTTRL
NVIC_SYSPRI14
NVIC_PENDSV_PRI
NVIC_PENDSVSET
S_CPU_SR_Save
OS_CPU_SR_Restore
OSStartHighRdy()由 OSStart()調用,用來啟動最高優(yōu)先級任務,當然任務必須在OSStart()前已被創(chuàng)建。
OSStartHighRdy
OSStartHang
void
{
# if
#endif
OS_ENTER_CRITICAL();
#if OS_TASK_PROFILE_EN > 0
#endif
}
OSCtxSw
OSIntExit()對調用 OSIntCtxSw()做任務切換。
OSIntCtxSw
OSIntCtxSw()則是中斷退出時,由中斷狀態(tài)切換到另一個任務。由中斷切換到任務時,CPU 寄存器入棧的工作已經做完了,所以無需做第二次了(參考邵老師書的 3.10 節(jié))。這里只不過由于 CM3 的特殊機制導致了在這兩個函數中只要做觸發(fā) PendSV中斷即可,具體切換由 PendSV 中斷來處理。
評論