VxWorks关于任务创建的几个函数的概述
来源:互联网 发布:北京软件开发公司 编辑:程序博客网 时间:2024/04/30 09:48
对于VxWorks 的任务创建可以通过调用 taskSpawn()或是taskInit()/taskActivate()两种方式,以下就对这两种方式进行说明。
taskSpawn() 实现任务的创建分为两步:1、分配任务栈的空间,初始化WIND_TCB; 2、激活任务。taskSpawn()函数的定义,
int taskSpawn (char *name, /*任务名称必须惟一的标示*/
int priority, /*任务优先级(0-255)越小标示优先级越高*/
int options, /*任务选项*/
int stackSize, /*任务栈大小(不包含任务名称)*/
FUNCPTR entryPt, /*任务入口函数指针*/
int arg1,int arg2, int arg3,int arg4, int arg5, int arg6,int arg7, int arg8, int arg9, int arg10)
函数调用成功时,返回新任务的ID,或者返回ERROR。
参数options任务选项,可以是以下的标志组合:
VX_FP_TASK:标志浮点寄存器是否属于上下文,若函数中使用了浮点数,应带上此标记。
VX_PRIVATE_ENV:支持任务私有环境变量。
VX_NO_STACK_FILL:不进行初始任务栈的填充。
VX_UNBREAKABLE:任务不允许断点调试(忽略断点)。
VX_DSP_TASK:DSP 协处理器支持。
VX_ALTIVEC_TASK:ALTIVEC 协处理器支持。
参数int型的10个,主要传入入口函数的参数,若不足10个,后面剩余的设为0。
taskInit()实现创建任务,必须由taskActivate()来激活。以下就对这两个函数进行分解:
STATUS taskInit (WIND_TCB* Ptcb, /*任务控制块WIND_TCB地址*/
char* name, /*任务名称必须惟一的标示*/
int priority, /*任务优先级(0-255)越小标示优先级越高*/
int options, /*任务选项*/
char* pStackBase, /*任务栈的起始地址*/
int stackSize, /*任务栈大小(不包含任务名称)*/
FUNCPTR entryPt, /*任务入口函数指针*/
int arg1,int arg2, int arg3,int arg4, int arg5, int arg6,int arg7, int arg8, int arg9, int arg10)
与taskSpawn() 相比多了两个参数WIND_TCB*和char* pStackBase,任务控制块参数由调用者分配空间,并由其释放;而任务栈也也是由调试者分配与释放,特别留意的是任务栈的起始地址有两种可能,地段地址或高端地址,具体由BSP而定。
STATUS taskActivate (int tid) /*tid = (int )pTcb;*/
参数tid是表示惟一的任务ID。
其实 taskSpawn() 内部调用taskInit()/taskActivate()来完成的。或者提供了更为细致的任务控制而已。而这两种的创建任务的差别:
1、taskSpawn()自动在系统堆上分配任务栈空间,并在任务栈上创建TCB;而taskInit()由调用者分配与释放的,TCB不属于任务栈的空间。
2、taskSpawn()生成任务后进入就绪队列;而taskInit()生成任务后处于挂起状态,不能被直接调用,直到taskActivate()激活。
- VxWorks关于任务创建的几个函数的概述
- VxWorks关于任务创建的几个函数的概述
- VxWorks关于任务创建的几个函数的概述
- VxWorks的系统任务
- VxWorks的任务状态
- VxWorks下消息、信号量的使用和任务创建
- VxWorks下消息、信号量的使用和任务创建
- VxWorks工程的创建
- Vxworks任务间的通信
- vxworks的启动任务taskSpawn
- VxWorks任务状态的转换
- UCOSII-与任务相关的几个函数
- 关于几个函数的使用
- 几个关于进程的函数
- 关于get的几个函数
- 关于CvHaarClassifier的几个函数
- 关于opengl的几个函数
- 几个 关于时间 的函数
- Symbian快速签名流程详解
- cat、more、less用于显示文件时的区别
- The annoying problem about my BIG TOE
- 文件选择类JFileChooser用法
- MySql数据库控制台的导入导出
- VxWorks关于任务创建的几个函数的概述
- C经典书籍
- 为何日本手机走不出国门?
- 配置tomcat环境变量
- mysql实现sequence
- 计算机安全方面的顶级会议
- linux常用命令
- 狼群中等级制度 - 看完探索栏目我与狼群有感
- 毕业了,总结一次