[发明专利]基于vxWorks系统的多任务访问同一IIC总线的方法有效
申请号: | 201911192484.3 | 申请日: | 2019-11-28 |
公开(公告)号: | CN110955507B | 公开(公告)日: | 2022-10-21 |
发明(设计)人: | 查荣明;曹峰;王瑞球 | 申请(专利权)人: | 苏州长风航空电子有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京国坤专利代理事务所(普通合伙) 11491 | 代理人: | 赵红霞 |
地址: | 215000 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 vxworks 系统 任务 访问 同一 iic 总线 方法 | ||
本发明揭示了基于vxWorks系统的多任务访问同一IIC总线的方法,创建一个基于优先级的消息队列,创建一个IIC访问请求处理任务,创建有IIC访问请求任务;进行IIC访问请求处理任务的运行及有IIC访问请求任务的运行。本发明可应用于采用IIC接口的vxWorks的多任务访问IIC总线的操作,解决任务得不到运行或者得不到完整运行的问题。极大地提高IIC访问的稳定性,保证了数据的完整性及功能的完整性,增强产品的可靠性。可以使得软件框架清晰,请求的形成与处理有效分开,思路清晰,增强了该方法的可移植性。
技术领域
本发明涉及基于vxWorks系统的多任务访问同一IIC总线的方法,属于嵌入式系统中任务访问优化的技术领域。
背景技术
目前,许多嵌入式产品由于IIC总线数量的限制,往往使用同一IIC总线挂载不同设备,如EEPROM、ADC等
vxWorks系统是基于优先级进行任务调度,因此会引起同时访问或者抢占式访问的情况发生,导致部分任务的请求得不到运行或者得不到完整的运行,从而导致数据的丢失,功能的缺失、不完善。即使加入了任务间的同步、互斥等操作,那么也会引起未获得IIC总线访问权的任务的等待,影响了这些任务的其他处理。
发明内容
本发明的目的是解决上述现有技术的不足,针对传统多任务访问中易出现抢占式访问导致部分任务请求得不到运行或得不到完整运行的问题,提出基于vxWorks系统的多任务访问同一IIC总线的方法。
为了达到上述目的,本发明所采用的技术方案为:
基于vxWorks系统的多任务访问同一IIC总线的方法,包括如下步骤:
步骤一,消息任务及任务创建,
创建一个基于优先级的消息队列,创建一个IIC访问请求处理任务,创建有IIC访问请求任务;
步骤二,IIC访问请求处理任务的运行,
IIC访问请求处理任务创建后,定期查询并接收消息队列中的消息,解析消息后,至少得到IIC地址、读写类型、寄存器地址信息,屏蔽任务抢占及中断后,调用IIC访问接口,然后使能任务抢占及中断,最后等待固定时间,如果没有消息,则等待固定时间,等待固定时间用于优先级低的任务能够得到运行;
步骤三,有IIC访问请求任务的运行,
有IIC访问请求任务创建后,检查是否有需要访问IIC总线,如果有,则根据当前任务的优先级,将IIC地址、读写类型、寄存器地址信息组装成IIC访问请求信息,调用消息发送接口,将请求信息发送到消息队列中,如果没有,则进行其他处理,消息队列会根据优先级,将请求信息按照优先级高低顺序排序。
优选地,所述步骤一中,所述消息队列在所述IIC访问请求处理任务与有IIC访问请求任务之前创建。
优选地,所述步骤一包括:
步骤201,设备上电,程序运行;
步骤202,基于优先级的消息队列创建,该消息队列的消息内容包含读写类型、IIC地址、寄存器类型;
步骤203,IIC访问请求处理任务的创建,用于处理IIC请求消息及访问;
步骤204,IIC访问请求处理任务的运行;
步骤205,有IIC访问请求任务的创建,具备若干个任务创建;
步骤206,有IIC访问请求的任务的运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州长风航空电子有限公司,未经苏州长风航空电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911192484.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动化车用后视镜支架加工设备
- 下一篇:一种财务数据处理系统