- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vxworks常用系统调用
附:常用系统调用
1.taskSpawn 创建(产生并激活)新任务
int taskSpawn
(
char *name, /*新任务名称*/
int priority, /*任务的优先级*/
int options, /*任务可选项*/
int stackSize, /*任务堆栈大小*/
FUNCPTR entryPt, /*任务入口函数*/
int arg1, /*任务入口函数所带参数1~10*/
int arg2, int arg3,
int arg4, int arg5,
int arg6, int arg7,
int arg8, int arg9,
int arg10
)
函数运行成功返回任务ID号,否则为ERROR。
任务可选项的几种模式如下表:
名 称 值 描 述 VX_FP_TASK
VX_NO_STACK_FILL
VX_PRIVATE_ENV
VX_UNBREAKABLE
VX_SUPERVISOR_MODE 0x8
0x100
0x80
0x2 运行带浮点的协处理器
不使用0xee填充堆栈
用私有环境运行任务
断点失效
用户任务常用值 2.taskDelete 删除一个任务
STATUS taskDelete
(
int tid /*删除任务的ID号*/
)
删除指定ID号的任务,并释放任务所占有的内存
3.taskDelay 延迟任务
STATUS taskDelay
(
int ticks /*延迟的时间滴答数*/
)
任务延迟为某一任务休眠一定时间提供了简单的处理方法,一般用于任务的周期性循环执行。当输入参数为NO_WAIT(其值为零)时,表示将所延迟的任务切换到同一优先级就绪队列的尾部。
4.taskSuspend 任务悬置
STATUS taskSuspend
(
int tid /*被悬置的任务ID号*/
)
5.taskResume 恢复任务
STATUS taskResume
(
int tid /*恢复的任务ID号*/
)
6.msgQCreate 创建并初始化消息队列
#include
MSG_Q_ID msgQCreate
(
int maxMsgs, /*队列所能容纳的最大消息数目*/
int maxMsgLength, /*每一消息的最大长度*/
int options /*消息入列方式*/
)
消息入列方式有两种:MSG_Q_FIFO 先进先出,按时间先后顺序考虑;MSG_Q_PRIORITY 按消息优先级考虑。
7.msgQSend 向一消息队列发送消息包
STATUS msgQSend
(
MSG_Q_ID msgQId, /*所发向的消息队列名*/
char * buffer, /*消息包所在缓冲区指针*/
UINT nBytes, /*消息包长度*/
int timeout, /*等待的时间长度*/
int priority /*优先级*/
)
该函数将长度为nBytes的缓冲区buffer消息包发向消息队列msgQId. 如果任务正在等待接收该消息队列的消息包,消息将立即被送到第一个等待的任务。如果没有任务等待此消息,消息包被保留在消息队列中。
参数timeout指明:当消息队列已满时,等待消息队列有空间时所等待的时间。超过该时间还没空间可用的话,消息包被舍弃。它有两个特殊值:NO_WAIT(0)立即返回,不管消息包是否被发送;WAIT_FOREVER(-1)一直等待消息队列有空间可用。
参数priority指明发送的消息的优先级,可能值有:MSG_PRI_NORMAL(0)正常优先级,将消息置于消息队列的尾部;MSG_PRI_URGENT(1)紧急消息,将消息置于消息队列的首部。
8.msgQReceive 接收消息
int msgQReceive
(
MSG_Q_ID msgQId, /*接收消息的消息队列ID号*/
char * buffer, /*接收消息的缓冲区指针*/
UINT maxNBytes, /*缓冲区长度*/
int timeout /*等待时间*/
)
该函数从消息队列msgQId接收消息,将其拷贝到最大长度为maxNBytes的缓冲区buffer。如果消息包长度超过maxNBytes,多余部分被舍弃。等待时间timeout有两个特殊值: NO_WAIT(0)立即返回;WAIT_FOREVER(-1)一直等待消息队列有消息可取。
9.msgQDelete 删除一个消息队列
STATUS msgQDele
原创力文档


文档评论(0)