欢迎来到天天文库
浏览记录
ID:39468697
大小:279.00 KB
页数:33页
时间:2019-07-04
《task相关函数的功能和用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、task相关函数的功能和用法版本号整理人整理日期备注V1.0胡军、王雪、张达蔚、吴旻、张丽丽、白艳滨2008-7-10初稿(培训讨论后整理)1.task_create(byHJ)·原型:task_t*task_create(void(*Function)(void*), void*Param, size_tStackSize, intPriority, constchar*Name, task_flags_tflags);·参数:void(*Function)(void*)指向任务函数的入口即函数名。void*Param提供
2、给Function的入口参数,如果参数较多,可以组合成结够体,再提供此结构体的地址作为参数即可。size_tStackSize任务所用的栈的大小。intPriority创建任务的优先级。constchar*Name任务的名称,主要是用来标示任务队列里的不同任务。task_flags_tflags关于任务的一些附加信息,一般定义为0,及标示为默认的行为具体如下表:TaskflagsTaskbehaviorTarget0创建一个OS20的默认的task.任何task_flags_high_priority_process创建一个高优先级
3、的人进程(在ST20C1中被忽视).ST20C2task_flags_suspendedCreatethetaskalreadysuspended.任何·返回值:如果创建成功返回指向该结构体的指针,否则返回NULL。·功能描述:此函数为创建一个具有给定优先级的任务。·应用举例:#include#include#include#include#include#defineONE_SECOND100#defineUSER_PRIORITY1
4、#defineUSER_WS_SIZE2048structsig_params{semaphore_t*Ready;intCount;};voidsignal_task(void*p){structsig_params*Params=(structsig_params*)p;intj;for(j=0;jCount;j++){semaphore_signal(Params->Ready);task_delay(ONE_SECOND);}}intmain(){task_t*Task;structsig_paramspa
5、rams;Task=task_create(signal_task,¶ms,USER_WS_SIZE,USER_PRIORITY,"Signal",0);if(Task==NULL){printf("Error:create.Unabletocreatetask");exit(EXIT_FAILURE);}}1.task_data(byHJ)·原型:void*task_data(task_t*Task);·参数:task_t*Task指向任务接构task_t的指针。·返回值:返回任务的数据指针,如果任务为空则返回当前正在
6、运行任务的数据指针。·功能描述:此函数调用返回该任务的数据指针。·应用举例:#include#include#include#definerunning1#defineUSER_WS_SIZE2048#defineUSER_PRIORITY2task_t*Task1;voidtask1(void){while(running){task_data(task_t*task1)task_delay(1000);}}intmain(){Task1=task_create((void(*
7、)(void*))task1,NULL,USER_WS_SIZE,USER_PRIORITY,"low",0);printf("task1iscreated!");if(NULL==Task1){printf("Error:create.Unabletocreatetask");exit(EXIT_FAILURE);}while(running){task_delay(1000);}}1.task_data_set(byHJ)·原型:void*task_data_set(task_t*Task,void*NewData);·
8、参数:task_t*Task指向任务结构task_t的指针。void*NewData新的指向数据的指针。·返回值:返回该任务先前的(设置新的数据指针之前)数据指针,如果所设置的任务为空则返回正在运行的任务(此时数据指针已被跟新)之前的
此文档下载收益归作者所有