资源描述:
《UCOS-II编程要点讲解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、UCOSII编程要点一、任务状态二、系统函数OSIint():系统初始化函数,并建立空闲任务;OSTastCreat(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio):任务建立,进入就绪态准备运行;参数:task是指向任务代码的指针。Pdata指向一个数据结构,该结构用来在建立任务时向任务传递参数。ptos为指向任务堆栈栈顶的指针。prio为任务的优先级OSTaskCreatExt(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio,INT16
2、Uid,OS_STK*pbos,INT32Ustk_size,void*pext,INT16Uopt):任务建立,进入就绪态准备运行;OSTaskChangePrio():改变任务的优先级;INT8UOSTaskChangePrio(INT8Uoldprio,INT8Unewprio);参数:oldprio是任务原先的优先级。newprio是任务的新优先级。OSTaskDel():任务睡眠;OSTaskDel()INT8UOSTaskDel(INT8Uprio);参数:prio为指定要删除任务的优先级,也可以用参数OS_PRIO_SELF代替OSStart(
3、):启动任务;OSTimeDly():任务延迟,进入等待状态;OSTimeDly()voidOSTimeDly(INT16Uticks);参数:ticks为要延时的时钟节拍数OSTimeDlyHMSM():任务延迟,进入等待状态;OSTimeDlyHMSM()voidOSTimeDlyHMSM(INT8Uhours,INT8Uminutes,INT8Useconds,INT8Umilli);1UCOSII编程要点参数:hours为延时小时数,范围从0-255。minutes为延时分钟数,范围从0-59。seconds为延时秒数,范围从0-59。milli为延
4、时毫秒数,范围从0-999。OSTimeDlyResume():让处在延时期的任务结束延时;OSTimeDlyResume()voidOSTimeDlyResume(INT8Uprio);参数:prio为指定要唤醒任务的优先级。OSTimeTick():延迟的任务就绪;OSTimeTick()voidOSTimeTick(void);OSTimTickHook():时钟节拍中断服务用户函数;OSTime():累加从开机以来的时间;OSSemPend():任务进入等待状态(WAITING);OSSemPend()VoidOSSemPend(OS_EVNNT*p
5、event,INT16Utimeout,int8u*err);参数:pevent是指向信号量的指针。该指针的值在建立该信号量时可以得到。Timeout允许一个任务在经过了指定数目的时钟节拍后还没有得到需要的信号量时恢复运行状态。如果该值为零表示任务将持续的等待信号量。最大的等待时间为65535个时钟节拍。Err是指向包含错误码的变量的指针。OSMboxPend():任务进入等待状态(WAITING);OSMboxPend()Void*OSMboxPend(OS_EVNNT*pevent,INT16Utimeout,int8u*err);参数:pevent是指
6、向即将接受消息的消息邮箱的指针。该指针的值在建立该消息邮箱时可以得到。Timeout允许一个任务在经过了指定数目的时钟节拍后还没有得到需要的消息时恢复运行。如果该值为零表示任务将持续的等待消息。Err是指向包含错误码的变量的指针。OSQPend():任务进入等待状态(WAITING);OSQPend()Void*OSQPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err);参数:pevent是指向即将接受消息的队列的指针。该指针的值在建立该队列时可以得到。Timeout允许一个任务在经过了指定数目的时钟节拍后还没有得到需要
7、的消息时恢复运行状态。如果该值为零表示任务将持续的等待消息。Err是指向包含错误码的变量的指针。OSTaskSuspend():挂起任务;OSTaskSuspend()INT8UOSTaskSuspend(INT8Uprio);参数:prio为指定要获取挂起的任务优先级,也可以指定参数OS_PRIO_SELF,挂起任务本身。OSTaskDel():删除任务;OSTaskDel()INT8UOSTaskDel(INT8Uprio);参数:prio为指定要删除任务的优先级,也可以用参数OS_PRIO_SELF代替OSTaskDelReq():请求删除任务;OST
8、askDelReq()INT8UOSTaskDel(