os_time.c
来源:互联网 发布:软件费用摊销年限 编辑:程序博客网 时间:2024/05/18 03:20
void OSTimeTick (void):
处理System Tick,在System Tick中断函数中调用。
调用钩子函数,根据OS_CFG_ISR_POST_DEFERRED_EN给OSTickTask发出Sem,根据OS_CFG_SCHED_ROUND_ROBIN_EN调用时间片轮询,根据OS_CFG_TMR_EN当OSTmrUpdateCtr==0时给OSTmrTask发出Sem。
OS_TICK OSTimeGet (OS_ERR *p_err):
获取OSTickCtr的值。系统没有用到。
void OSTimeSet (OS_TICK ticks,
OS_ERR *p_err):
设置OSTickCtr的值。系统没有用到。
void OSTimeDly (OS_TICK dly,
OS_OPT opt,
OS_ERR *p_err):
先进行参数检验,更新OSTCBCurPtr->TaskState = OS_TASK_STATE_DLY,将OSTCBCurPtr插入到TickList中,如果出现错误OS_CRITICAL_EXIT_NO_SCHED();,将OSTCBCurPtr从RdyList中移除,启动调度。
void OSTimeDlyHMSM (CPU_INT16U hours,
CPU_INT16U minutes,
CPU_INT16U seconds,
CPU_INT32U milli,
OS_OPT opt,
OS_ERR *p_err):
和OSTimeDly ()相同,只是通过参数计算得到dly,在开发中感觉还是OSTimeDly 好用。
void OSTimeDlyResume (OS_TCB *p_tcb,
OS_ERR *p_err):
恢复调用了OSTimeDly()或OSTimeDlyHMSM()的任务。
判断p_tcb->TaskState:
如果OS_TASK_STATE_DLY:更新p_tcb->TaskState,将p_tcb从TickList中删除,将p_tcb添加的ready_list中。
如果OS_TASK_STATE_DLY_SUSPENDED:更新p_tcb->TaskState,将p_tcb从TickList中删除。
其他状态不能Resume,返回对应的错误码。 0 0
- OS_TIME.C
- os_time.c
- os_time.c
- uC/OS-II源码解析(os_time.c)
- μCOS-II源码文件之OS_TIME.C
- 五、时间管理---任务延时[OSTimeDly()]--OS_TIME.C
- c
- c
- c
- c
- C
- c
- c
- c
- C+
- c
- C
- c
- OpenCV实践之路——矩形图片的对角线分割
- KVC之-(void)setValue:(id)value forUndefinedKey:(NSString *)key
- IOS中消息的传递机制(delegate,block,通知,KVO)
- GCD下的几种实现同步的方式
- lintcode: Jump Game
- os_time.c
- 深复制和浅复制
- 数组(二维数组)
- Android Wear 进阶 2.1 Creating and Running a Wearable App 创建和运行手表应用
- xcode怎么把自定义代码添加到代码库CodeSnippets
- C++构造函数调用规则
- os_tmr.c
- Leetcode 258
- c++中new与delete