UCOSiii的运行基本上都是建立在时钟节拍的基础之上,ostimedly这些函数更是以节拍为单位进行计时,那么这个时间到底是怎么来的,我比较困惑就稍微研究了一下,有不对的地方欢迎指出。
首先,在os_cpu_c.c中有void OS_CPU_SysTickHandler (void),函数说明中有如下内容
/*$PAGE*/
/*
*********************************************************************************************************
* SYS TICK HANDLER
*
* Description: Handle the system tick (SysTick) interrupt, which is used to generate the uC/OS-II tick
* interrupt.
*
* Arguments : None.
*
* Note(s) : 1) This function MUST be placed on entry 15 of the Cortex-M3 vector table.
*********************************************************************************************************
*/
这是中断入口函数,UCOS按此中断作为节拍,搜索工程内并无此中断入口(使用原子的例程),后来又找了找,发现是原子自己写的delay.c中有如下函数
//systick中断服务函数,使用ucos时用到
v