[发明专利]嵌入式系统的系统软件层的实现方法、装置及可读介质有效
申请号: | 201910227380.5 | 申请日: | 2019-03-25 |
公开(公告)号: | CN109960589B | 公开(公告)日: | 2021-07-09 |
发明(设计)人: | 陈银雷;叶成钢;徐寒凌;张毅;金音;包文杰;卢运钊;王雨 | 申请(专利权)人: | 上海富士施乐有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 徐伟 |
地址: | 200245 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 系统 系统软件 实现 方法 装置 可读 介质 | ||
1.一种嵌入式系统的系统软件层的实现方法,包括:
为主程序单元分配一共用的第一内存空间;
在所述第一内存空间加载事件队列,所述事件队列中存储有指示所有待执行的任务的事件;
由所述主程序单元循环读取所述事件队列以调用所述事件队列中的任务,并使用所述第一内存空间执行所调用的任务;执行完任意所述事件队列中的一个事件后,所述主程序返回主循环起点,重新循环读取所述事件队列;以及
向所述事件队列写入新事件,包括加载多个事件队列,每个事件队列对应不同的优先级,所述循环读取所述事件队列包括按照优先级顺序读取所述多个事件队列,所述写入新事件包括按照所述新事件的优先级写入对应优先级的事件队列。
2.如权利要求1所述的实现方法,其特征在于,所述主程序单元响应于所调用的当前任务执行完毕,依序读取所述加载事件队列中的下一事件以调用并执行对应的下一任务。
3.如权利要求1所述的实现方法,其特征在于,所述向所述事件队列写入新事件包括由所述主程序单元在执行某一任务的过程中向所述事件队列写入所述新事件。
4.如权利要求1所述的实现方法,其特征在于,还包括:
为多个中断程序单元分配一共用的第二内存空间;
所述向所述事件队列写入新事件包括由所述多个中断程序单元中的一者或多者在执行中断处理时向所述事件队列写入所述新事件。
5.如权利要求1所述的实现方法,其特征在于,所述加载事件队列包括创建数组以及指示读取位置的数组读取索引变量和指示写入位置的数组写入索引变量,所述数组读取索引变量在一次事件读取后递增,所述数组写入索引变量在一次事件写入后递增。
6.如权利要求5所述的实现方法,其特征在于,当所述数组读取索引变量和所述数组写入索引变量达到最大数组索引时恢复至所述数组的最小数组索引变量。
7.如权利要求1所述的实现方法,其特征在于,所述事件队列中存储的事件包括事件类型和消息类型,所述实现方法还包括:
在所述第一内存空间加载消息队列,所述消息队列中依序存储有与所述事件队列中的消息类型的事件所对应的消息,
所述读取所述事件队列以调用所述事件队列中的任务包括:
若读取的事件为事件类型,则调用并执行预先为该事件类型的事件注册的任务;以及
若读取的事件为消息类型,则读取所述消息队列以获取与该消息类型的事件对应的消息以利用所读取的消息中的信息调用并执行预先为该消息类型的事件注册的任务。
8.如权利要求7所述的实现方法,其特征在于,还包括:
向所述事件队列写入新事件,其中若所述新事件为消息类型,则进一步向所述消息队列中写入与该新事件对应的消息。
9.一种嵌入式系统的系统软件层的实现装置,包括:
存储器,以及
处理器,所述处理器配置为:
为主程序单元分配一共用的第一内存空间;
在所述第一内存空间加载事件队列,所述事件队列中存储有指示所有待执行的任务的事件;
由所述主程序单元循环读取所述事件队列以调用所述事件队列中的任务,并使用所述第一内存空间执行所调用的任务;
向所述事件队列写入新事件,包括加载多个事件队列,每个事件队列对应不同的优先级,所述循环读取所述事件队列包括按照优先级顺序读取所述多个事件队列,所述写入新事件包括按照所述新事件的优先级写入对应优先级的事件队列;以及
执行完任意事件队列中的一个事件后,主程序返回主循环起点,重新循环读取所述事件队列。
10.如权利要求9所述的实现装置,其特征在于,所述处理器进一步配置为由所述主程序单元响应于所调用的当前任务执行完毕,依序读取所述加载事件队列中的下一事件以调用并执行对应的下一任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海富士施乐有限公司,未经上海富士施乐有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910227380.5/1.html,转载请声明来源钻瓜专利网。