第6章6.2消息队列管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

6.2消息队列管理表6.3消息队列函数一览表P140函数功能调用者OSQCreate()建立消息队列任务或者启动代码OSQDel()删除消息队列任务OSQPend()等待消息队列中的消息任务OSQPost()想消息队列发送消息FIFO任务或者中断OSQPostFront()向消息队列发送消息LIFO任务或者中断OSQPostOpt()以可选方式向消息队列发送消息FIFO或LIFO任务或者中断OSQAccept()无等待地从消息队列中获得消息任务或者中断OSQFlush()清空消息队列任务或者中断OSQQuery()查询消息队列的状态任务表6.4消息队列配置常量一览表P140队列函数配置常数说明系统配置OS_Q_EN该常量为0时,屏蔽所有消息队列函数OS_MAX_QS决定消息队列的最大数目,为0时,屏蔽所有消息队列函数OS_MAX_EVENTS决定消息队列的最大数目,OSQCreate()消息队列必须支持这个函数,不能单独屏蔽,所以无配置常量OSQPend()OSQDel()OS_Q_DEL_ENOSQPost()OS_Q_POST_EN这三个函数至少选择其中的一个OSQPostFront()OS_Q_FRONT_ENOSQPostOpt()OS_Q_POST_OPT_ENOSQAccept()OS_Q_ACCEPT_ENOSQFlush()OS_Q_FLUSH_ENOSQQuery()OS_Q_QUERY_EN6.2.4删除消息队列err:返回的出错代码可以是一下几种之一(P145)OS_NO_ERR调用成功,消息队列已被删除OS_ERR_DEL_ISR试图在中断服务子程序中删除消息队列OS_ERR_INVALID_OPT无效opt参数,用户没有将opt定义为正确的选择OS_ERR_EVENT_TYPEpevent不是指向消息队列的指针OS_ERR_PEVENT_NULL已经没有OS_EVENT数据结构可以使用6.2.5息队列中的消息——OSQPend()OSQPend()等待消息队列返回的出错代码(P148)OS_NO_ERR消息被正确的接受OS_TIMEOUT在指定的时钟节拍数内没有得到消息OS_ERR_PEND_ISR从中断调用该函数OS_ERR_EVENT_TYPEpevent不是指向消息队列的指针6.2.6向消息队列发送(FIFO)消息OSQPost()OSQPost()函数返回值可能为如下内容之一(P151)OS_NO_ERR消息成功的放到消息队列OS_Q_FULL消息队列满OS_ERR_PEVENT_NULLpevent是空指针OS_ERR_EVENT_TYPEpevent不是指向消息队列的指针OS_ERR_POST_NULL_PTR用户试图发出空指针(无效)6.2.7向消息队列发送(LIFO)消息OSQPostFront()OSQPostFront()函数返回值err的错误代码可能为一下几种之一(P153)OS_NO_ERR消息成功的发送到消息队列中OS_Q_FULL消息队列满OS_ERR_PEVENT_NULLpevent是空指针OS_ERR_EVENT_TYPEpevent不是指向消息队列的指针OS_ERR_POST_NULL_PTR用户试图发出空指针(无效)6.2.8以可选方式(FIFO或LIFO)向消息队列发送消息OSQPostOpt()Opt定义消息发送方式如下几种选择(P156)OS_POST_OPT_NONE发消息给一个任务,仿真OSQPost()函数OS_POST_OPT_BROADCAST给等待消息的任务广播发送消息OS_POST_OPT_FRONT以LIFO方式发送消息,同于OSQPostFront()函数OS_POST_OPT_FRONT+OS_POST_OPT_BROADCAST仿真OSQPostFront()函数,且广播消息6.2.8以可选方式(FIFO或LIFO)向消息队列发送消息OSQPostOpt()OSQPostOpt()函数返回值err的错误代码可能为一下几种之一(P156)OS_NO_ERR消息成功的发送到消息队列中OS_Q_FULL消息队列满OS_ERR_PEVENT_NULLpevent是空指针OS_ERR_EVENT_TYPEpevent不是指向消息队列的指针OS_ERR_POST_NULL_PTR用户试图发出空指针(无效)6.2.10清空消息队列OSQFlush()OSQPostOpt()函数返回值可能为下述之一(P159)OS_NO_ERR消息队列被成功清空OS_ERR_EVENT_TYPE试图清除的对象不是消息队列OS_ERR_PEVENT_NULLpevent是空指针6.2.11查询消息队列的状态——OSQQuery()OS_Q_DATA结构包含如下成员变量(P160).OSMsg如果消息队列是空的,则.OSMsg包含一个NULL指针;如果消息队列有消息,则.OSMsg包含指针.OSQOut所指向的消息队列单元中的内容.OSNMsgs消息队列中的消息数,即.OSQEntries的拷贝.OSQSize消息队列的总容量.OSEventTb1[]和.OSEventGrp消息队列的等待任务列表。OSQQuery()的调用者可以通过这两个变量得到消息队列中等待该消息的任务总数

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功