[发明专利]一种基于消息队列的单片机操作系统实现方法有效
申请号: | 201510071580.8 | 申请日: | 2015-02-11 |
公开(公告)号: | CN104598208A | 公开(公告)日: | 2015-05-06 |
发明(设计)人: | 李俊画;马剑;朱永;莫平勇 | 申请(专利权)人: | 四川天邑康和通信股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 成都金英专利代理事务所(普通合伙) 51218 | 代理人: | 袁英 |
地址: | 610000 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于消息队列的单片机操作系统实现方法,采用C语言编写程序代码,使用Keil公司的编译器进行编译生成二进制执行文件,该方法首先定义了消息结构类型和消息结构类型的数组作为消息队列;然后设计了消息存取函数实现消息队列的先进先出功能;最后主函数无限循环读取消息,并根据消息值调用相应的任务处理函数,待任务处理函数返回后进行下一次循环。本发明的有益效果是:在本单片机软件系统中,先存入的消息先被执行,实现了抢占式多任务操作系统的功能,使编写的代码结构简洁、层次分明和容易维护,软件运行效率显著提高。 | ||
搜索关键词: | 一种 基于 消息 队列 单片机 操作系统 实现 方法 | ||
【主权项】:
一种基于消息队列的单片机操作系统实现方法,它采用C语言编写程序代码,使用Keil公司的编译器进行编译生成二进制执行文件,其特征在于:它包括以下步骤:S1:定义消息结构类型,包括消息字、参数A和参数B;S2:定义消息队列,先根据芯片的内存资源和任务处理情况定义消息队列长度,再定义一个数据类型为消息结构的数组作为消息队列,用于存储消息及参数;S3: 定义消息队列的存取指针,初始化时将存取指针都设为零,用于指示消息在存入和读取时在消息队列中的位置,当存入和读取指针相同时,表示没有消息;S4:发送消息到消息队列,包括以下子步骤:S41:按照消息存入指针所指示的位置将消息存入消息队列,存入指针增量;S42:判断存入指针是否达到最大值,若是则将存入指针设为零;S43:判断消息队列是否存满,若是则意味着未处理的消息将被覆盖,从而发生系统级错误,则进行系统复位来避免系统运行错误;S5:从消息队列中读取消息和参数,包括以下子步骤:S51:芯片看门狗清零;S52:判断是否有待处理消息,若有待处理消息则进行步骤S53,若没有待处理消息则返回步骤S51;S53:按照消息读取指针所指示的位置从消息数组中读取消息,读取指针增量;S54:判断读取指针是否为最大值,若是则将读取指针设为零,若不是则结束操作;S6:主函数循环读取消息,当读取到消息及参数后,根据消息值调用相应的任务处理函数,待任务处理结束后再进行下一次循环。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川天邑康和通信股份有限公司;,未经四川天邑康和通信股份有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510071580.8/,转载请声明来源钻瓜专利网。
- 上一篇:用于合并和重用门户信息的方法和系统
- 下一篇:一种信息处理方法及电子设备