?? os_cpu_c.c
字號:
** Modified date:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
#if OS_CPU_HOOKS_EN > 0
void OSTaskStatHook (void)
{
}
#endif
/*********************************************************************************************************
** Function name: OSTaskStkInit
** Descriptions: This function is called by either OSTaskCreate() or OSTaskCreateExt() to
** initialize the stack frame of the task being created.
** This function is highly processor specific.
** OSTaskCreate() 和 OSTaskCreateExt()調用本函數初始化正被創建的任務的堆棧
** 本函數和具體的處理器有關
** Input parameters: task: A pointer to the task code 任務代碼的指針
** p_arg: A pointer to a user supplied data area that will be passed to the task
** when the task first executes.
** 用戶提供的數據空間的指針,任務運行時會被傳遞給任務
** ptos: A pointer to the top of the stack. For this port, it's the highest
** valid address of the stack.
** 棧頂的指針。對于本移植,它指向堆棧的最高有效地址。
** opt: Specified options that can be used to alter the behavior of
* OSTaskStkInit().(see uCOS_II.H for OS_TASK_OPT_xxx).
** 特定選項,可以改變對OSTaskStkInit()的使用方法。
** (參看 uCOS_II.H 中的 OS_TASK_OPT_xxx).
** Output parameters: None 無
** Returned value: The new location of top-of-stack 新棧頂指針位置
** Created by: Steven Zhou 周紹剛
** Created Date: 2007.12.12
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
OS_STK *OSTaskStkInit (void (*task)(void *parg), void *parg, OS_STK *ptos, INT16U opt)
{
OS_STK *stk;
(void)opt; /* 'opt' is not used, prevent */
/* warning 沒有用'opt', */
/* 防止編譯警告 */
stk = ptos; /* Load stack pointer */
/* 裝載堆棧指針 */
/* Registers stacked as if */
/* auto-saved on exception */
/* 模擬成異常,自動把寄存器壓棧*/
*(stk) = (INT32U)0x01000000L; /* xPSR */
*(--stk) = (INT32U)task; /* Entry Point of the task */
/* 任務入口地址 */
*(--stk) = (INT32U)0xFFFFFFFEL; /* R14 (LR) (init value will */
/* cause fault if ever used) */
*(--stk) = (INT32U)0x12121212L; /* R12 */
*(--stk) = (INT32U)0x03030303L; /* R3 */
*(--stk) = (INT32U)0x02020202L; /* R2 */
*(--stk) = (INT32U)0x01010101L; /* R1 */
*(--stk) = (INT32U)parg; /* R0 : argument 輸入參數 */
/* Remaining registers saved on*/
/* process stack */
/* 剩下的寄存器保存到堆棧 */
*(--stk) = (INT32U)0x11111111L; /* R11 */
*(--stk) = (INT32U)0x10101010L; /* R10 */
*(--stk) = (INT32U)0x09090909L; /* R9 */
*(--stk) = (INT32U)0x08080808L; /* R8 */
*(--stk) = (INT32U)0x07070707L; /* R7 */
*(--stk) = (INT32U)0x06060606L; /* R6 */
*(--stk) = (INT32U)0x05050505L; /* R5 */
*(--stk) = (INT32U)0x04040404L; /* R4 */
return(stk);
}
/*********************************************************************************************************
** Function name: OSTaskSwHook
** Descriptions: The hook function called when a task switch is performed.
** 任務切換時前調用的鉤子函數
** Input parameters: None 無
** Output parameters: None 無
** Returned value: None 無
** Created by: Steven Zhou 周紹剛
** Created Date: 2007.12.12
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void OSTaskSwHook (void)
{
}
/*********************************************************************************************************
** Function name: OSTCBInitHook
** Descriptions: The hook function called by OS_TCBInit()
** OS_TCBInit()調用的鉤子函數
** Input parameters: ptcb
** Output parameters: None 無
** Returned value: None 無
** Created by: Steven Zhou 周紹剛
** Created Date: 2007.12.12
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
#if (OS_CPU_HOOKS_EN > 0) && (OS_VERSION > 203)
void OSTCBInitHook (OS_TCB *ptcb)
{
(void)ptcb; /* Prevent compiler warning */
/* 防止編譯警告 */
}
#endif
/*********************************************************************************************************
** Function name: OSTimeTickHook
** Descriptions: The hook function called every tick
** 每個節拍調用的鉤子函數
** Input parameters: ptcb
** Output parameters: None 無
** Returned value: None 無
** Created by: Steven Zhou 周紹剛
** Created Date: 2007.12.12
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
#if ((OS_CPU_HOOKS_EN > 0) && (OS_TIME_TICK_HOOK_EN > 0)) || (OS_VERSION < 283)
void OSTimeTickHook (void)
{
#if OS_TMR_EN > 0
OSTmrCtr++;
if (OSTmrCtr >= (OS_TICKS_PER_SEC / OS_TMR_CFG_TICKS_PER_SEC)) {
OSTmrCtr = 0;
OSTmrSignal();
}
#endif
}
#endif
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -