我自身也是个初学者,喜爱嵌入式而自学ucos体系,ucos是个开源的代码,矮小而又简略,这是我学习的笔记,期望能对喜爱ucos的人有一点协助,因自己也是初学者,如有过错迎点拨。一般的书多是2.5版别,没有os_tmr.c,所以我写了关于这部分代码的剖析。
我读ucos.中的os_tmr.c:
我想这个文件里便是为了写一个树立在操作体系的守时器,本来咱们学的时钟节拍就像cpu总线时钟脉冲相同。咱们树立的是守时器结构体,在os_tmr.c中有一个函数OSTmr_Task()这个函数对守时器结构体的信息进行处理,在守时时刻到了时分,该守时器中的一个指向回调函数的指针就调用这个回调节器函数进行作业,当然,你要写回调函数,否则就什么也不做,曾经做过ucos移植的人知道要写一个硬件守时器中止函数,这回要加个OSTmrSignal()这儿有个发送信号。咱们学硬件时知道,用到硬件守时器时要给它一个核算脉冲。这个软件守时器也要一个核算脉冲。咱们树立的守时器结构体都会挂到OSTmrWheelTbl[OS_TMR_CFG_WHEEL_SIZE]上面,OS_TMR_CFG_WHEEL+SIZE是要自己界说的,至于挂到OSTmrWheelTbl[0] 到OSTmrWheelTbl[OS_TMR_CFG_WHEEL_SIZE-1]哪一个上,只需看一下OSTmr_Link (OS_TMR *ptmr, INT8U type)就理解了,并且一个OSTmrWheelTbl[n]上能够挂很多个守时器结构体。
一、守时器的树立:
守时器是在咱们的应用程序中树立的,
OS_TMR *OSTmrCreate (INT32U dly,
INT32U period,
INT8U opt,
OS_TMR_CALLBACK callback,
void *callback_arg,
INT8U *pname,
INT8U *perr)
想运用守时器那些函数要在os_cfg.h中界说 OS_TMR_EN。
回来值是os_tmr结构体(界说在ucos_ii.h中)。
typedef struct os_tmr {
INT8U OSTmrType;
OS_TMR_CALLBACK OSTmrCallback;
我读ucos.中的os_tmr.c:
一、守时器的树立:
OS_TMR
想运用守时器那些函数要在os_cfg.h中界说 OS_TMR_EN。
回来值是os_tmr结构体(界说在ucos_ii.h中)。
typedef
INT8U
OS_TMR_CALLBACK