[发明专利]一种基于嵌入式操作系统的软件分层架构在审
申请号: | 201911032058.3 | 申请日: | 2019-10-28 |
公开(公告)号: | CN110780858A | 公开(公告)日: | 2020-02-11 |
发明(设计)人: | 王雨龙 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/30;G06F8/76;G06F8/70 |
代理公司: | 11011 中国兵器工业集团公司专利中心 | 代理人: | 刘二格 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件分层 操作系统 计算机技术领域 嵌入式操作系统 嵌入式软件设计 操作系统移植 动态内存管理 面向对象语言 系统运行状态 控制台功能 模块化操作 硬件驱动层 层次功能 底层驱动 记录功能 可维护性 软件开发 业务逻辑 应用算法 语言开发 出错率 封装层 应用层 中间层 架构 开发 | ||
本发明属于计算机技术领域,公开了一种基于嵌入式操作系统的软件分层架构,将整个系统分为操作系统移植层,操作系统封装层,硬件驱动层,中间层,应用层。加入了控制台功能系统,系统运行状态log记录功能等,动态内存管理功能。本发明解决了传统嵌入式软件设计中,操作系统、底层驱动以及业务逻辑与应用算法多个软件层次功能一并设计开发的不足,采用面向对象语言C++语言开发,最大限度地将不同功能的软件分层区分开,提高软件的模块化操作,使软件开发高效简洁,增加软件的可维护性,减少出错率。
技术领域
本发明属于计算机软件设计技术领域,涉及一种基于嵌入式操作系统的软件分层架构。
背景技术
微型处理器的使用一般会采用嵌入式实时操作系统,如μC/OS,此操作系统是一款可剪裁的、抢占式的、实时多任务操作系统,具有高度的可移植性,特别适合微处理器和控制器。因此对于常用的STM32,DSP等微处理器都会采用这种操作系统,但在传统的嵌入式软件设计中,上层应用程序、操作系统、底层驱动通常是一并设计开发,没有明显的层次。在新的软件项目中,微小的硬件改动,也要重新开发操作系统软件,设计方法开发效率低,而且没有分层封装,同一资源需要在多个位置重复编写,导致代码繁琐,每一个微小的改动需要同时对多个位置修改,容易出错,逻辑算法驱动与操作系统等融合在一起,致使代码的可维护性差。目前上位机软件开发倡导的低耦合高内聚也同样适用于嵌入式软件,这样可以有效保证软件开发的质量,最大限度地提升软件地开发效率。
发明内容
(一)发明目的
本发明的目的是:针对传统的嵌入式软件设计中代码可移植性、可维护性差,代码繁琐,不易修改等一系列问题,提供一种跨硬件平台的软件分层架构,以节省开发成本,克服背景技术中的问题缺陷。
(二)技术方案
为了解决上述技术问题,本发明提供一种基于嵌入式操作系统的软件分层架构,由下至上依次包括:操作系统移植层、操作系统封装层、硬件驱动层、中间层和应用层;操作系统移值层为整个软件分层提供架构基础,操作系统封装层为硬件驱动层提供底层封装,中间层提供硬件驱动层和应用层的衔接。
其中,所述操作系统移植层包括μC/OS操作系统内核文件、CPU内核操作汇编文件、CPU系统操作汇编文件、STM32LIB启动文件;CPU内核操作汇编文件包括os_cpu.asm汇编文件,为指定CPU的内核操作;CPU系统操作汇编文件包括os_cpu_a.asm汇编文件,为指定CPU的系统操作;STM32LIB启动文件包括启动文件Startup.s,为CPU启动文件。
其中,所述操作系统移植层封装成LIB库。
其中,所述操作系统封装层采用C++面向对象语言进行操作系统底层处理方法的封装,将任务的操作、消息队列的操作以及互斥信号量的操作封装成类中的成员函数。
其中,所述任务类封装时,任务类的构造函数为初始化任务创建需要的资源,包括任务堆的申请、任务参数的初始化;消息队列类封装时,消息队列类构造函数为消息队列的消息空间内存堆的初始化以及消息队列的创建工作;互斥信号量类封装时,互斥信号量类的构造函数主要对互斥信号量相关参数进行初始化,并进行互斥信号量的创建。
其中,所述硬件驱动层为硬件外设的控制器驱动,针对相同的硬件控制器,将硬件驱动层封装成设备类,直接移植到其它平台使用。
其中,所述硬件驱动层包括串口驱动、CAN总线驱动、SPI总线驱动、SD卡驱动、IO驱动。
其中,所述中间层实现系统控制台的功能,在系统启动的main函数中创建一个控制台对象,通过控制台公有成员函数重定向的printf在其他线程实现串口打印;对于控制台接收功能,接口底层将收到的控制台数据通过消息队列传递给控制台线程,控制台遍历链表节点找到对应的指令并通过printf进行交互。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911032058.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种统一日志组件
- 下一篇:一种基于自定义表单的服务架构的实现方法