- 1
- 0
- 约1.62万字
- 约 16页
- 2020-11-14 发布于四川
- 举报
嵌入式操作系统内核原理和开
发( 消息队列 )
嵌入式操作系统内核原理和开发(消息队列)
消息队列是线程交互的一种方法, 任务可以通过
消息队列来实现数据的沟通和交换。 在嵌入式系
统上,这可以说这是用的最多的一种方法。 通过
消息队列, 无论是发送者, 还是接受者都可以循
环地处理各种消息。 而我们知道, 存储消息最好
的方式就是循环队列, 如果消息已满, 那么发送
者可以把自己 pend 到等待队列上; 而如果此时
没有消息, 那么接受者也可以把自己 pend 到等
待队列上。 当然实现消息队列的方法很多, 甚至
用户可以自己利用互斥量和信号量来实现, 而嵌
入式系统常常会默认提供这样的功能函数, 我想
主要的目的还是为了方便用户, 让他们可以更多
地从业务的角度来看问题, 而不是把重点关注在
这些底层的细节上面。
首先,我们还是看看 rawos 上面关于消
息队列的数据结构是怎么定义的,
typedef struct RAW_MSG_Q {
RAW_VOID **queue_start; /* Pointer to start of queue data
*/
RAW_VOID **queue_end; /* Pointer to end of queue data
*/
软件英才网 软件行业驰名招聘网站
RAW_VOID **write; /* Pointer to where next message will
be inserted in the Q */
RAW_VOID **read; /* Pointer to where next message will be
extracted from the Q */
RAW_U32 size; /* Size of queue (maximum number of entries)
*/
RAW_U32 current_numbers; /* Current number of entries in the
queue */
RAW_U16 blocked_send_task_numbers; /*number of blocked send task
numbers */
RAW_U16 blocked_receive_task_numbers; /*number of blocked send task
numbers */
} RAW_MSG_Q;
typedef struct RAW_QUEUE
{
RAW_COMMON_BLOCK_OBJECT common_block_obj;
您可能关注的文档
- 局行政许可审批事项规范表.pdf
- 居住小区机动车停车管理服务协议(示范文本).pdf
- 居民基本公共卫生服务.pdf
- 居民学校建设标准.pdf
- 居民户问卷(农村和城市居民).pdf
- 居民需求调查问卷(农业大队).pdf
- 屏山县农村公路乡镇联网改建工程施工(大乘镇至岩门乡镇联网路改建工程).pdf
- 履行广告监管职能,维护文明诚信的广告市场秩序(讲义).pdf
- 岗位工作人员职责及任职要求.pdf
- 岗位职责及作业指导书.pdf
- 2026年学历类高职单招机械类-建筑类参考题库含答案解析(5卷试题).docx
- 2026事业单位笔试-辽宁-辽宁超声诊断(医疗招聘)历年参考题库含答案详解5卷试题.docx
- XX实验学校英语教研组长在口语人机对话模拟测试安排与辅导策略.docx
- 2026年学历类自考护理管理学-高级财务会计参考题库含答案解析(5卷试题).docx
- 2026年学历类自考专业(工商企业管理)企业管理咨询-国际企业管理参考题库含答案解析(5卷题版).docx
- 2026版事业单位笔试-贵州-贵州中医妇科学(医疗招聘)历年参考题库含答案解析5套试卷版.docx
- 2026年学历类自考管理信息系统-教师职业道德与专业发展参考题库含答案解析(5卷试题).docx
- 2026版畜牧兽医科学-畜牧兽医-家畜生产学历年参考题库含答案解析5套试卷版.docx
- 2026年建筑工程类一级造价工程师案例分析(土建与安装)-案例分析(水利)参考题库含答案解析(5卷题.docx
- XX实验学校地理教师在研学旅行课程开发实践反思与优化建议.docx
原创力文档

文档评论(0)