📄 os_cpu_c.c
字号:
#if OS_CPU_INT_DIS_MEAS_EN > 0
OS_CPU_IntDisMeasInit();
#endif
}
#endif
/*
*********************************************************************************************************
* TASK CREATION HOOK
*
* Description: This function is called when a task is created.
*
* Arguments : ptcb is a pointer to the task control block of the task being created.
*
* Note(s) : 1) Interrupts are disabled during this call.
*********************************************************************************************************
*/
void OSTaskCreateHook (OS_TCB *ptcb)
{
ptcb = ptcb; /* Prevent compiler warning */
#if OS_VIEW_MODULE > 0
OSView_TaskCreateHook(ptcb);
#endif
}
/*
*********************************************************************************************************
* TASK DELETION HOOK
*
* Description: This function is called when a task is deleted.
*
* Arguments : ptcb is a pointer to the task control block of the task being deleted.
*
* Note(s) : 1) Interrupts are disabled during this call.
*********************************************************************************************************
*/
void OSTaskDelHook (OS_TCB *ptcb)
{
ptcb = ptcb; /* Prevent compiler warning */
}
/*
*********************************************************************************************************
* TASK SWITCH HOOK
*
* Description: This function is called when a task switch is performed. This allows you to perform other
* operations during a context switch.
*
* Arguments : none
*
* Note(s) : 1) Interrupts are disabled during this call.
* 2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
* will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the
* task being switched out (i.e. the preempted task).
*********************************************************************************************************
*/
void OSTaskSwHook (void)
{
#if OS_VIEW_MODULE > 0
OSView_TaskSwHook();
#endif
}
/*
*********************************************************************************************************
* STATISTIC TASK HOOK
*
* Description: This function is called every second by uC/OS-II's statistics task. This allows your
* application to add functionality to the statistics task.
*
* Arguments : none
*********************************************************************************************************
*/
void OSTaskStatHook (void)
{
}
/*
*********************************************************************************************************
* OSTCBInit() HOOK
*
* Description: This function is called by OSTCBInit() after setting up most of the TCB.
*
* Arguments : ptcb is a pointer to the TCB of the task being created.
*
* Note(s) : 1) Interrupts may or may not be ENABLED during this call.
*********************************************************************************************************
*/
#if OS_VERSION > 203
void OSTCBInitHook (OS_TCB *ptcb)
{
ptcb = ptcb; /* Prevent Compiler warning */
}
#endif
/*
*********************************************************************************************************
* TICK HOOK
*
* Description: This function is called every tick.
*
* Arguments : none
*
* Note(s) : 1) Interrupts may or may not be ENABLED during this call.
*********************************************************************************************************
*/
void OSTimeTickHook (void)
{
/*
#ifdef OS_VIEW_MODULE
#if OS_VIEW_MODULE > 0
OSView_TickHook();
#endif
#endif
#if TMR_USE_SEM
TmrSignalTmr();
#endif
}
*/
#if OS_VIEW_MODULE > 0
OSView_TickHook();
#endif
#if OS_TMR_EN > 0
OSTmrCtr++;
if (OSTmrCtr >= (OS_TICKS_PER_SEC / OS_TMR_CFG_TICKS_PER_SEC))
{
OSTmrCtr = 0;
OSTmrSignal();
}
#endif
}
/*
*********************************************************************************************************
* IDLE TASK HOOK
*
* Description: This function is called by the idle task. This hook has been added to allow you to do
* such things as STOP the CPU to conserve power.
*
* Arguments : none
*
* Note(s) : 1) Interrupts are enabled during this call.
*********************************************************************************************************
*/
#if OS_VERSION >= 251
void OSTaskIdleHook (void)
{
#if EASYRAM2200_BOARD_EN < 1
static uint8 a = 0;
if(a)
{
WDI_HIGH();
a = 0;
} else{
WDI_LOW();
a = 1;
}
#endif
}
#endif
/*
*********************************************************************************************************
* INTERRUPT DISABLE TIME MEASUREMENT, START
*********************************************************************************************************
*/
#if OS_CPU_INT_DIS_MEAS_EN > 0
INT16U OS_CPU_IntDisMeasTmrRd(void)
{
INT16U cnts;
cnts = (INT16U)T0TC;
return (cnts);
}
void OS_CPU_IntDisMeasInit (void)
{
OS_CPU_IntDisMeasNestingCtr = 0;
OS_CPU_IntDisMeasCntsEnter = 0;
OS_CPU_IntDisMeasCntsExit = 0;
OS_CPU_IntDisMeasCntsMax = 0;
OS_CPU_IntDisMeasCntsDelta = 0;
OS_CPU_IntDisMeasCntsOvrhd = 0;
OS_CPU_IntDisMeasStart(); /* Measure the overhead of the functions */
OS_CPU_IntDisMeasStop();
OS_CPU_IntDisMeasCntsOvrhd = OS_CPU_IntDisMeasCntsDelta;
}
void OS_CPU_IntDisMeasStart (void)
{
OS_CPU_IntDisMeasNestingCtr++;
if (OS_CPU_IntDisMeasNestingCtr == 1) { /* Only measure at the first nested level */
OS_CPU_IntDisMeasCntsEnter = OS_CPU_IntDisMeasTmrRd();
}
}
void OS_CPU_IntDisMeasStop (void)
{
OS_CPU_IntDisMeasNestingCtr--; /* Decrement nesting ctr */
if (OS_CPU_IntDisMeasNestingCtr == 0) {
OS_CPU_IntDisMeasCntsExit = OS_CPU_IntDisMeasTmrRd();
OS_CPU_IntDisMeasCntsDelta = OS_CPU_IntDisMeasCntsExit - OS_CPU_IntDisMeasCntsEnter;
if (OS_CPU_IntDisMeasCntsDelta > OS_CPU_IntDisMeasCntsOvrhd) { /* Ensure overhead < delta */
OS_CPU_IntDisMeasCntsDelta -= OS_CPU_IntDisMeasCntsOvrhd;
} else {
OS_CPU_IntDisMeasCntsDelta = OS_CPU_IntDisMeasCntsOvrhd;
}
if (OS_CPU_IntDisMeasCntsDelta > OS_CPU_IntDisMeasCntsMax) { /* Track MAXIMUM */
OS_CPU_IntDisMeasCntsMax = OS_CPU_IntDisMeasCntsDelta;
}
}
}
#endif
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -