task相关函数的功能和用法.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
task相关函数的功能和用法

task相关函数的功能和用法 版本号 整理人 整理日期 备注 V1.0 胡军、王雪、张达蔚、 吴旻、张丽丽、白艳滨 2008-7-10 初稿(培训讨论后整理) task_create (by HJ) ·原型:task_t* task_create(void (*Function)(void*), ? void* Param, ? ? size_t StackSize, ? ? int Priority, ? ? const char* Name, ? ? task_flags_t flags );void (*Function)(void*) 指向任务函数的入口即函数名。 void* Param 提供给Function的入口参数,如果参数较多,可以组合成结够体,再提供此结构体的地址作为参数即可size_t StackSize 任务所用的栈的大小int Priority 创建任务的优先级const char* Name 任务的名称,主要是用来标示任务队列里的不同任务task_flags_t flags 关于任务的一些附加信息,一般定义为0,及标示为默认的行为具体如下表 Task flags Task behavior Target 0 创建一个OS20的默认的task. 任何 task_flags_high_priority_process 创建一个高优先级的人进程 (在ST20C1中被忽视). ST20C2 task_flags_suspended Create the task already suspended. 任何 如果创建成功返回指向该结构体的指针,否则返回NUL此函数为创建一个具有给定优先级的任务#include stdio.h #include stdlib.h #include ostime.h #include task.h #include semaphor.h #define ONE_SECOND 100 #define USER_PRIORITY 1 #define USER_WS_SIZE 2048 struct sig_params { semaphore_t *Ready; int Count; }; void signal_task(void* p) { struct sig_params* Params = (struct sig_params*)p; int j; for (j = 0; j Params-Count; j++) { semaphore_signal (Params-Ready); task_delay(ONE_SECOND); } } int main() { task_t* Task; struct sig_params params; Task = task_create (signal_task, params, USER_WS_SIZE, USER_PRIORITY, Signal, 0); if (Task == NULL) { printf (Error : create. Unable to create task\n); exit (EXIT_FAILURE); } } task_data (by HJ) ?原型:void* task_data( task_t* Task ); ·参数:task_t* Task 指向任务接构task_t的指针返回任务的数据指针,如果任务为空则返回当前正在运行任务的数据指针此函数调用返回该任务的数据指针#include stdio.h #include stdlib.h #include task.h #define running 1 #define USER_WS_SIZE 2048 #define USER_PRIORITY 2 task_t *Task1; void task1 ( void ) { while( running ) { task_data( task_t* task1) task_delay( 1000 ); } } int main() { Task1 = task_create (( void ( * )( void* )) task1, NULL, USER_WS_SIZE, USER_PRIORITY, low, 0); printf( task1 is created!\

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档