μC/OSIII——任务通信(消息传递)
来源:互联网 发布:浙江省三级数据库题型 编辑:程序博客网 时间:2024/06/06 12:34
使用情况
一个任务或者中断服务程序与另一个任务交流信息
使用方法
消息队列服务函数的实现代码在os_q.c文件中,在编译时,将os_cfg.h文件中的配置常数OS_CFG_Q_EN设为1就可启用这些服务函数。
常用消息队列的服务函数有:
- OSQCreate() 创建消息队列
- OSQPend() 等待消息队列中的信息
- OSQPost() 向消息队列中发送消息
void OSQCreate (OS_Q *p_q, 指向消息队列控制块的指针
CPU_CHAR *p_name, 指向字符串的指针——消息队列的名字
OS_MSG_QTY max_qty, 指定消息队列的最大长度(必须为非零)
OS_ERR *p_err) 该函数返回的错误码
void *OSQPend (OS_Q *p_q, 指向消息队列控制块的指针
OS_TICK timeout, 指定等待消息的超时时间(时钟节拍数)
OS_OPT opt,
OS_MSG_SIZE *p_msg_size, 接受的消息的大小(字节数,可用sizeof获取)
CPU_TS *p_ts, 指向一个时间戳的指针
OS_ERR *p_err) 该函数返回的错误码
opt OS_OPT_PEND_BLOCKING 阻塞模式(任务挂起等待该对象)
OS_OPT_PEND_NON_BLOCKING 非阻塞模式(没有任何消息存在时,任务直接返回)
void OSQPost (OS_Q *p_q, 指向消息队列控制块的指针
void *p_void, 实际发送的消息内容
OS_MSG_SIZE msg_size, 设定消息的大小(字节数)
OS_OPT opt,
OS_ERR *p_err) 该函数返回的错误码
opt OS_OPT_POST_FIFO 待发送的消息保存在消息队列的末尾(FIFO)
OS_OPT_POST_LIFO 待发送的消息保存在消息队列的开头(LIFO)
+OS_OPT_POST_ALL 向所有等待该消息队列的任务发送消息(否则只发送到最高级)
+OS_OPT_POST_NO_SCHED 禁止在本函数内执行任务调度操作
使用实例
实验结果
- μC/OSIII——任务通信(消息传递)
- μC/OSIII——任务同步和通信(一)
- μC/OSIII——任务同步和通信(二)
- μC/OSIII——任务同步和通信(二)
- μC/OSIII——任务同步和通信(一)
- μC/OSIII——任务同步(事件标志组)
- uC/OSIII学习笔记(一)消息传递
- 进程间通信——消息传递(管道)
- 进程间通信——消息传递(消息队列)
- uc/OSIII 任务使用
- 页面通信方式——跨文档消息传递XDM
- 理解osIII中的消息队列
- 笔记:进程间通信——消息传递(管道、FIFO、posix消息队列)
- uC/OSIII的消息队列处理机制
- 进程间通信——消息传递(信号量同步PV操作)
- UCOS-II任务间通信(信号量、邮箱、消息队列)
- linux进程通信——消息队列(相互通信)
- Linux c 基于内存的进程通信—共享内存、共享队列(消息队列)
- ext radio
- xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)
- vc编译的this的传递
- jQuery(四) 遍历
- 【解决方法】Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed.
- μC/OSIII——任务通信(消息传递)
- jquery
- 解决子进程自动退出的问题
- Thinkpad E440启动顺序设置
- CentOS 6.5下配置Ceph作为KVM后端存储
- java中StringReader的作用
- linux下获取文件大小
- 浙江省台州市 交大欧洲大学MBA/DBA官网(瑞士)欧洲大学
- BDC OKCODE解释