CN109508202B - 嵌入式操作系统的驱动开发系统、方法及介质 - Google Patents

嵌入式操作系统的驱动开发系统、方法及介质 Download PDF

Info

Publication number
CN109508202B
CN109508202B CN201811132147.0A CN201811132147A CN109508202B CN 109508202 B CN109508202 B CN 109508202B CN 201811132147 A CN201811132147 A CN 201811132147A CN 109508202 B CN109508202 B CN 109508202B
Authority
CN
China
Prior art keywords
layer
module
interface
hardware
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811132147.0A
Other languages
English (en)
Other versions
CN109508202A (zh
Inventor
聂飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 32 Research Institute
Original Assignee
CETC 32 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 32 Research Institute filed Critical CETC 32 Research Institute
Priority to CN201811132147.0A priority Critical patent/CN109508202B/zh
Publication of CN109508202A publication Critical patent/CN109508202A/zh
Application granted granted Critical
Publication of CN109508202B publication Critical patent/CN109508202B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

Abstract

本发明提供了一种嵌入式操作系统的驱动开发系统、方法及介质,包括:硬件处理层:实现底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,被初始化控制层和常用工具层调用;初始化控制层:承接硬件处理层和能力配置层,调用硬件处理层的接口和能力配置层的参数,完成硬件的初始化。本发明针对国产嵌入式操作系统的驱动开发框架,使得驱动开发变成所见即所得配置过程,降低国产嵌入式操作系统驱动开发难度、提升开发效率、缩短驱动开发周期和成本;本发明提供的框架中将外设按照业界协议或者规范进行了流程标准化访问控制,避免了引入新问题,可靠性高。

Description

嵌入式操作系统的驱动开发系统、方法及介质
技术领域
本发明涉及嵌入式实时操系统领域,具体地,涉及嵌入式操作系统的驱动开发系统、方法及介质。尤其地,涉及一种面向嵌入式操作系统的驱动开发框架的技术。
背景技术
微电子技术的飞速发展,使计算机硬件的集成度越来越高、体积越来越小,其性能不断提高。而且硬件的复杂性日益增加,对软件设计也提出了新的要求。软件开发的周期的增大,导致软件开发成本急剧上升。嵌入式系统变得越来越复杂,在充分发挥硬件性能的同时如何降低开发难度和成本成为了一个难题。解决这个难题的通常做法就是运用嵌入式操作系统。嵌入式操作系统结合了嵌入式系统的特点,其体系结构从最初的无序模块结构到层次结构,最终发展成为现在的微内核结构。微内核结构的基本思想是将操作系统中共同需要的核心功能提炼出来,形成内核的基本功能(如进程通信、线程管理、任务通信等),微内核结构将与机器特征相关的代码全部隔离在微内核的底层。这样,只须开发对应平台的驱动开发包,嵌入式操作系统就可移植到不同的硬件平台,因此,如何制定硬件平台与操作系统的接口以提高嵌入式操作系统的可移植性,尽可能使操作系统的内核可以跨越多种硬件平台,是嵌入式驱动开发框架研究的重点。本专利主要针对当前主流的国产嵌入式操作系统研究驱动简单易用低成本的开发框架。
过去的数十年内,国外嵌入式实时操作系统VxWorkks在国内极为盛行,不管是在民用还是在军工领域,VxWorks都牢牢占据市场绝对优势,随着国产化进程的推进,当前国内涌现出锐华、天脉等嵌入式实时操作系统系统品牌,由于VxWorks在国内的广泛应用,国产嵌入式操作系统的驱动开发借鉴了国外风河VxWorks驱动开发模,其中除了技术方案归一化难度大的原因,更多为适应当前软件开发人员用户习惯,便于市场推广,本发明旨在针对国产嵌入式操作系统环境搭建一个新型驱动开发框架,该框架对比当前驱动开发模式具有如下特点:
1.降低驱动开发难度,提升开发效率:在新驱动开发框架下,驱动开发人员只需修改配置文件即可完成驱动开发,不需要过多关注代码流程和具体协议实现,提高了开发效率,降低了驱动开发难度。
2.标准化程度高:由于框架摒弃了目前主流使用的定制化开发模式,排除人为因素对驱动源码的过多干预,框架内部嵌入各类常用外设进行了协议或规范的源代码标准化实现。
3.内置常用工具:框架内部集成了常用工具,具体包括大小端转换、字截取、通信协议控制接口、串口助手等,方便调试芯片异常故障,对一些外设芯片的疑难故障定位提供了标准处理分析流程。
4.一键故障定位:无需投入人力定制开发外设检测流程,通过协议层、策略层方法,一键完成外设故障定位,并上报故障具体信息。对一些器件挂死问题分析有较大帮助。
5.规范化操作系统与驱动间的接口,简化了驱动与操作系统的耦合关联,驱动开发人员只需关注对应外设的工作模式,完成对应的配置即可。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种嵌入式操作系统的驱动开发系统、方法及介质。
根据本发明提供的一种嵌入式操作系统的驱动开发系统,包括:
硬件处理层:实现底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,被初始化控制层和常用工具层调用;
初始化控制层:承接硬件处理层和能力配置层,调用硬件处理层的接口和能力配置层的参数,完成硬件的初始化;
能力配置层:提供开发框架中软件开发所需的参数,将所述参数作为配置表被初始化控制层和常用工具层使用;
常用工具层:调用硬件处理层接口完成标准化测试及数据格式转化,并提供接口给业务软件开发使用。
优选地,所述硬件处理层中具有:
协议处理模块:是协议和规范软件代码实现的集合库,进行代码化的协议处理,所述代码化的协议处理包括:将标准协议或者规范进行流程化代码实现,封装为各类访问控制函数,提供给硬件适配模块或初始化控制层调用;
硬件适配模块:针对不同的硬件外设,调用协议处理模块完成对外设的操作控制;针对不同的硬件外设,从能力配置层获取驱动外设访问控制参数,导入控制参数调用协议处理模块中的函数完成对外设的访问初始化;完成各类常用策略的函数实现,包括:对单个寄存器、芯片存储空间或者异常控制的处理策略;
自定义模块:定制实现框架中各业务层未包含的外设驱动硬件实现,或者定制实现对器件的定制化控制应用;提供函数接口供硬件适配模块调用。
优选地,所述初始化控制层读取配置文件信息,依据配置文件信息按照流程顺序完成驱动支持外设的初始化,完成操作系统接口的注册,使得外设进入系统工作状态;
初始化控制层中具有:
驱动初始化模块:查询配置表,获取配置信息,通过调用硬件适配模块中的函数接口和获取的配置信息依次完成系统中覆盖的所有外设的初始化;
OS接口注册模块:将驱动与操作系统之间的接口对接,读取配置文件中关于接口注册的配置参数,对需要进行操作系统接口注册的设备与操作系统进行接口绑定;
自定义接口模块:对外设进行非标准化访问控制,包括:直接访问存储芯片的预留空间,将协议规范层的接口传递给上层进行直接调用。
优选地,所述能力配置层中具有:包含驱动能力参数模块、硬件参数模块和自定义参数模块这三个参数配置模块;
所述三个参数配置模块将外设访问控制进行参数化,并保存在xml配置文件中。
优选地,所述常用工具层中具有:
转换工具模块包括:驱动开发过程中用到的大小端转化、网络字节序接口、2字节short数据类型转化4字节word数据类型接口中的任一种或任多种工具;
调试工具模块包括:FTP客户端、Xmodem客户端、IPMI工具、存储器件性能测试工具、日志记录工具中的任一种或任多种工具;所述日志记录工具提供基于内存存储、终端输出和非易失存储模式的同时使用和单独使用;
健康管理模块:进行上电自检、周期自检和启动自检函数流程实现,提供传感器告警策略、系统关机策略、服务策略中的任一种或任多种策略;对外提供故障查询接口、告警阈值动态设置接口中的任一种或任多种接口。
根据本发明提供的一种嵌入式操作系统的驱动开发方法,包括:
硬件处理步骤:设置硬件处理层,所述硬件处理层:实现底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,被初始化控制层和常用工具层触发;
初始化控制步骤:设置初始化控制层,所述初始化控制层:承接硬件处理层和能力配置层,触发硬件处理层的接口和能力配置层的参数,完成硬件的初始化;
能力配置步骤:设置能力配置层,所述能力配置层:提供开发框架中软件开发所需的参数,将所述参数作为配置表被初始化控制层和常用工具层使用;
常用工具处理步骤:设置常用工具层,所述常用工具层:触发硬件处理层接口完成标准化测试及数据格式转化,并提供接口给业务软件开发使用。
优选地,硬件处理层中具有:
触发协议处理模块,所述协议处理模块:是协议和规范软件代码实现的集合库,进行代码化的协议处理,所述代码化的协议处理包括:将标准协议或者规范进行流程化代码实现,封装为各类访问控制函数,提供给硬件适配模块或初始化控制层触发;
触发硬件适配模块,所述硬件适配模块:针对不同的硬件外设,调用协议处理模块完成对外设的操作控制;针对不同的硬件外设,从能力配置层获取驱动外设访问控制参数,导入控制参数调用协议处理模块中的函数完成对外设的访问初始化;完成各类常用策略的函数实现,包括:对单个寄存器、芯片存储空间或者异常控制的处理策略;
触发自定义模块,所述自定义模块:定制实现框架中各业务层未包含的外设驱动硬件实现,或者定制实现对器件的定制化控制应用;提供函数接口供硬件适配模块调用。
优选地,所述初始化控制步骤:读取配置文件信息,依据配置信息按照流程顺序完成驱动支持外设的初始化,完成操作系统接口的注册,使得外设进入系统工作状态;
初始化控制层中具有:
触发驱动初始化模块,所述驱动初始化模块:查询配置表,获取配置信息,通过调用硬件适配模块中的函数接口和获取的配置信息依次完成系统中覆盖的所有外设的初始化;
触发OS接口注册模块,所述OS接口注册模块:将驱动与操作系统之间的接口对接,读取配置文件中关于接口注册的配置参数,对需要进行操作系统接口注册的设备与操作系统进行接口绑定;
触发自定义接口模块,所述自定义接口模块:对外设进行非标准化访问控制,包括:直接访问存储芯片的预留空间,将协议规范层的接口传递给上层进行直接调用。
优选地,所述能力配置层中具有:触发包含驱动能力参数模块、硬件参数模块和自定义参数模块三个参数配置模块;
三个参数配置模块:将外设访问控制进行参数化,并保存在xml配置文件中。
所述常用工具层中具有:
触发转换工具模块,所述转换工具模块包括:驱动开发过程中常用到大小端转化、网络字节序接口、2字节short强转4字节word接口;
触发调试工具模块,所述调试工具模块包括:FTP客户端、Xmodem客户端、IPMI工具、存储器件性能测试工具、日志记录工具;所述日志记录工具提供基于内存存储、终端输出和非易失存储模式的同时使用和单独使用;
触发健康管理模块,所述健康管理模块:进行系统上电自检、周期自检和启动自检函数流程实现,提供传感器告警策略、系统关机策略、服务策略;对外提供故障查询、告警阈值动态设置等接口。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述任一项所述的嵌入式操作系统的驱动开发方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明针对国产嵌入式操作系统的驱动开发框架,使得驱动开发变成所见即所得配置过程,降低国产嵌入式操作系统驱动开发难度,提升了开发效率,缩短了驱动开发周期和成本;
2、本发明提供的框架中将外设按照业界协议或者规范进行了流程标准化访问控制,避免了引入新问题,可靠性高;
3、本发明提的驱动开发框架可以集成主流国产操作系统开发环境,同时在使用上灵活、方便、易用,易于推广。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为根据本发明的实施例的驱动开发框架层次示意图。
图2为根据本发明的实施例1的驱动能力配置示意图。
图3为根据本发明的实施例1逻辑层面上层次间上下文层次关系示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种嵌入式操作系统的驱动开发系统,包括:
硬件处理层:实现底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,被初始化控制层和常用工具层调用;
初始化控制层:承接硬件处理层和能力配置层,调用硬件处理层的接口和能力配置层的参数,完成硬件的初始化;
能力配置层:提供开发框架中软件开发所需的参数,将所述参数作为配置表被初始化控制层和常用工具层使用;
常用工具层:调用硬件处理层接口完成标准化测试及数据格式转化,并提供接口给业务软件开发使用。
具体地,所述硬件处理层中具有:
协议处理模块:是协议和规范软件代码实现的集合库,进行代码化的协议处理,所述代码化的协议处理包括:将标准协议或者规范进行流程化代码实现,封装为各类访问控制函数,提供给硬件适配模块或初始化控制层调用;进一步地,协议和规范包括:I2C、SPI、LocalBus、SATA、SAS、PCI、AXI、SD/MMC、RapidIO、PCIE。
硬件适配模块:针对不同的硬件外设,调用协议处理模块完成对外设的操作控制;针对不同的硬件外设,从能力配置层获取驱动外设访问控制参数,导入控制参数调用协议处理模块中的函数完成对外设的访问初始化;完成各类常用策略的函数实现,包括:对单个寄存器、芯片存储空间或者异常控制的处理策略;
自定义模块:定制实现框架中各业务层未包含的外设驱动硬件实现,或者定制实现对器件的定制化控制应用;提供函数接口供硬件适配模块调用。
具体地,所述初始化控制层读取配置文件信息,依据配置文件信息按照流程顺序完成驱动支持外设的初始化,完成操作系统接口的注册,使得外设进入系统工作状态;
初始化控制层中具有:
驱动初始化模块:查询配置表,获取配置信息,通过调用硬件适配模块中的函数接口和获取的配置信息依次完成系统中覆盖的所有外设的初始化;
OS接口注册模块:将驱动与操作系统之间的接口对接,读取配置文件中关于接口注册的配置参数,对需要进行操作系统接口注册的设备与操作系统进行接口绑定;
自定义接口模块:对外设进行非标准化访问控制,包括:直接访问存储芯片的预留空间,将协议规范层的接口传递给上层进行直接调用。
具体地,所述能力配置层中具有:包含驱动能力参数模块、硬件参数模块和自定义参数模块这三个参数配置模块;
所述三个参数配置模块将外设访问控制进行参数化,并保存在xml配置文件中。
具体地,所述常用工具层中具有:
转换工具模块包括:驱动开发过程中用到的大小端转化、网络字节序接口、2字节short数据类型转化4字节word数据类型接口中的任一种或任多种工具;
调试工具模块包括:FTP客户端、Xmodem客户端、IPMI工具、存储器件性能测试工具、日志记录工具中的任一种或任多种工具;所述日志记录工具提供基于内存存储、终端输出和非易失存储模式的同时使用和单独使用;
健康管理模块:进行上电自检、周期自检和启动自检函数流程实现,提供传感器告警策略、系统关机策略、服务策略中的任一种或任多种策略;对外提供故障查询接口、告警阈值动态设置接口中的任一种或任多种接口。
本发明提供的嵌入式操作系统的驱动开发系统,可以通过本发明给的嵌入式操作系统的驱动开发方法的步骤流程实现。本领域技术人员可以将所述嵌入式操作系统的驱动开发方法,理解为所述嵌入式操作系统的驱动开发系统的一个优选例。
根据本发明提供的一种嵌入式操作系统的驱动开发方法,包括:
硬件处理步骤:设置硬件处理层,所述硬件处理层:实现底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,被初始化控制层和常用工具层触发;
初始化控制步骤:设置初始化控制层,所述初始化控制层:承接硬件处理层和能力配置层,触发硬件处理层的接口和能力配置层的参数,完成硬件的初始化;
能力配置步骤:设置能力配置层,所述能力配置层:提供开发框架中软件开发所需的参数,将所述参数作为配置表被初始化控制层和常用工具层使用;
常用工具处理步骤:设置常用工具层,所述常用工具层:触发硬件处理层接口完成标准化测试及数据格式转化,并提供接口给业务软件开发使用。
具体地,硬件处理层中具有:
触发协议处理模块,所述协议处理模块:是协议和规范软件代码实现的集合库,进行代码化的协议处理,所述代码化的协议处理包括:将标准协议或者规范进行流程化代码实现,封装为各类访问控制函数,提供给硬件适配模块或初始化控制层触发;
触发硬件适配模块,所述硬件适配模块:针对不同的硬件外设,调用协议处理模块完成对外设的操作控制;针对不同的硬件外设,从能力配置层获取驱动外设访问控制参数,导入控制参数调用协议处理模块中的函数完成对外设的访问初始化;完成各类常用策略的函数实现,包括:对单个寄存器、芯片存储空间或者异常控制的处理策略;
触发自定义模块,所述自定义模块:定制实现框架中各业务层未包含的外设驱动硬件实现,或者定制实现对器件的定制化控制应用;提供函数接口供硬件适配模块调用。
具体地,所述初始化控制步骤:读取配置文件信息,依据配置信息按照流程顺序完成驱动支持外设的初始化,完成操作系统接口的注册,使得外设进入系统工作状态;
初始化控制层中具有:
触发驱动初始化模块,所述驱动初始化模块:查询配置表,获取配置信息,通过调用硬件适配模块中的函数接口和获取的配置信息依次完成系统中覆盖的所有外设的初始化;
触发OS接口注册模块,所述OS接口注册模块:将驱动与操作系统之间的接口对接,读取配置文件中关于接口注册的配置参数,对需要进行操作系统接口注册的设备与操作系统进行接口绑定;
触发自定义接口模块,所述自定义接口模块:对外设进行非标准化访问控制,包括:直接访问存储芯片的预留空间,将协议规范层的接口传递给上层进行直接调用。
具体地,所述能力配置层中具有:触发包含驱动能力参数模块、硬件参数模块和自定义参数模块三个参数配置模块;
三个参数配置模块:将外设访问控制进行参数化,并保存在xml配置文件中。进一步地,通过修改xml配置文件中的外设参数完成平台对应驱动开发,无需进行代码修改,xml配置文件格式固定,开发人员可对参数属性进行选择、修改或者新增。
所述常用工具层中具有:
触发转换工具模块,所述转换工具模块包括:驱动开发过程中常用到大小端转化、网络字节序接口、2字节short强转4字节word接口;
触发调试工具模块,所述调试工具模块包括:FTP客户端、Xmodem客户端、IPMI工具、存储器件性能测试工具、日志记录工具;所述日志记录工具提供基于内存存储、终端输出和非易失存储模式的同时使用和单独使用;
触发健康管理模块,所述健康管理模块:进行系统上电自检、周期自检和启动自检函数流程实现,提供传感器告警策略、系统关机策略、服务策略;对外提供故障查询、告警阈值动态设置等接口。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述任一项所述的嵌入式操作系统的驱动开发方法的步骤。
下面通过优选例对本发明进行更为具体地说明。
实施例1:
一种模块化和可扩展的软件体系架构,该软件框架提供一种适用于国产嵌入式操作系统平台的底层驱动开发框架,该框架摒弃了传统开发方式开源代码移植、定制化修改模式,通过标准化通信协议、配置参数以及驱动与操作系统间的接口,实现驱动开发流程简化为参数配置。驱动开发框架包含硬件处理层、初始化控制层、能力配置层和常用工具层共4个层次,如图1所示,框架中四个软件层从逻辑功能上相互解耦,从业务流程上存在上下文直接调用关系,其中硬件处理层是框架的最底层,它实现了底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,直接被初始化控制层和常用工具层调用。初始化控制层承接硬件处理层和能力配置层,直接调用硬件处理层接口和能力配置层参数完成硬件的初始化。能力配置层提供了框架中软件开发所需的各类参数,这些参数作为配置表可以直接被初始化控制层和常用工具层使用,常用工具层通过调用硬件处理层接口完成标准化测试及数据格式转化,并提供接口给业务软件开发使用。下面对架构中的四个层次进行详细描述:
1)硬件处理层:该层实现硬件抽象并为系统提供设备接口与底层控制,包含协议处理模块、硬件适配模块和自定义模块,协议处理模块是当前嵌入式硬件主流外设的协议或规范的软件实现库,硬件适配模块通过调用协议处理模块完成对外设的操作控制,自定义模块用于开发定制扩展,提供函数接口供硬件适配模块调用。
a)协议处理模块:硬件协议处理模块是框架中最大的模块,覆盖了当前主流硬件外设使用到的协议或者规范,是协议和规范软件代码实现的集合库,这些代码化的协议处理将标准协议或者规范进行流程化代码实现,并封装为各类访问控制函数,提供给给硬件适配模块或初始化控制层调用
该模块具体包含的协议规范有I2C、SPI、LocalBus、SATA、SAS、PCI、AXI、SD/MMC、RapidIO、PCIE等,完整覆盖I2C系列传感器、SPI系列存储器、LocalBus外挂存储或者FIFO单元、各类磁盘、网卡MAC端、网络交换端、网络phy端等,协议处理模块作为一个跟随标准或者规范的模块,在框架中需要不断扩展和更新,保持其在专业领域的适应性。
b)硬件适配模块:硬件适配模块针对不同的硬件外设,完成配置参数获取、初始化函数具体实现、访问策略控制和函数调用接口。其中配置参数获取主要完成从能力配置层获取驱动外设访问控制参数,初始化函数具体实现主要导入控制参数调用协议处理模块中的函数完成对外设的访问初始化具体流程实现。访问策略控制模块主要完成各类常用策略的函数实现,包含了对单个寄存器、芯片存储空间、异常控制的处理策略,例如在访问一个传感器芯片寄存器时,依据访问失败重试次数参数进行重试修复,依据传感器挂死修复流程在重试失败后对传感器进行复位修复,调整访问控制的时序等功能。
c)自定义模块:作为硬件处理层的可扩展补充,允许用户定制实现框架中各业务层暂未包含的外设驱动硬件实现或者对某些器件的定制化控制应用。
2)初始化控制层:作为承接参数配置层和协议处理层的中间层,其主要功能是完成配置文件信息读取,依据配置信息按照流程顺序完成驱动支持外设的初始化,完成操作系统接口的注册,使得外设进入系统工作状态,具体包含驱动初始化模块、OS接口注册模块和自定义接口模块,三个子模块间功能独立,是整个开发框架支撑系统运行的程序入口。
a)驱动初始化模块:依据配置信息依次完成系统中覆盖的所有外设的初始化,该过程主要通过查配置表和调用硬件适配模块中的API函数接口来实现。
b)OS接口注册模块;OS接口注册模块主要用于驱动与操作系统之间的接口对接,在开源框架中是一个封闭的库,用户不可修改,该模块读取配置文件中关于接口注册的配置参数,对于一些需要进行操作系统接口注册的设备完成与操作系统进行接口绑定,作为一个衔接操作系统的模块,其在实现中覆盖主流国产操作系统字符设备、网络设备、块设备注册接口。
c)自定义接口模块:作为初始化控制层的扩展补充,可用于对一些外设进行非标准化访问控制,例如:直接访问存储芯片的预留空间,将协议规范层的接口传递给上层进行直接调用。
3)能力配置层:该层集成了驱动开发框架的能力模型描述,作为一个所见即所得的XML文件配置层,其服务对象直接面向驱动开发人员,具体包含驱动能力参数模块、硬件参数模块和自定义参数模块。这些参数配置模块将外设访问控制进行参数化,并保存在xml配置文件中,驱动开发人员通过修改xml配置文件中的外设参数即完成平台对应驱动开发,无需进行代码修改,xml配置文件格式固定,开发人员可对参数属性进行选择、修改或者新增,如图2所示,给出了驱动能力配置参数示意图,在配置参数中框架给出了默认典型配置参数,部分参数进行了数据有效性保护,只能填写有效数据值,避免出错,配置工具(由随框架提供)导入配置参数文件完成CRC校验值更新,并将配置文件转为.bin文件,用户可将.bin文件烧写到指定的存储空间(地址可修改),驱动框架开发生成的程序会可以将配置文件读入到系统内存中供驱动程序流程使用。
4)常用工具层:常用工具层包含转换工具模块、调试工具模块和健康管理模块,三个子模块间功能相互独立,对外分别体现不同的业务功能。
a)转换工具模块:包含驱动开发过程中常用到大小端转化、网络字节序接口、2字节short强转4字节word等接口。
b)调试工具模块:包含FTP客户端、Xmodem客户端、IPMI工具、存储器件性能测试工具、日志记录等。其中日志记录工具可提供基于内存存储、终端输出和非易失存储模式的同时使用和单独使用、这些常用的工具模块可以方便驱动开发人员在模块调试期间对外设进行调试,以所见即所得的方式准确定位模块问题原因。
c)健康管理模块:健康管理模块包含了系统上电自检、周期自检和启动自检函数流程实现,并提供了传感器告警、系统关机、服务等策略,保障系统平台运行在一个健康可控的环境中,同时该模块对外提供故障查询、告警阈值动态设置等接口。
基于分层架构的驱动开发框架,主要针对国产嵌入式操作系统平台,逻辑层面上层次间上下文层次关系如图3所示,其中开发区域为框架用户进行驱动开发涉及到的模块集合,硬件处理层对应了框架模块架构的硬件处理层中固化状态的用户不可变更代码库和头文件,服务能力层是覆盖了框架模块架构的能力配置层和初始化控制流程代码库,开发框架顶层工具包含了开发框架组件为上层应用提供了函数接口集合,常用工具层是框架中的常用工具模块层函数库。
研发人员可修改开发的区域如图3中所示的开发区域,主要涉及配置文件修改、自定义硬件设备和自定义服务能力。在硬件设备层、和服务能力层,它们封装和隐藏了具体的底层细节,将各类硬件通过相关标准或规范进行抽象模块化实现,同时功能上解耦内核中调度算法、上下文切换、中断处理、文件系统、IO模块等系统资源,支撑了驱动开发框架中能力序列集合的执行,每个层次模块功能独立性强,层次间的接口标准化程度高。
预留的自定义模块可以灵活方便地扩展用户自定义功能,承载驱动中非标准部分或者定制规则内容实现,例如:通过FPGA虚拟串口、CAN设备、FIFO存储区、通过CPLD控制电源的上下电时序实现等。
能力配置层打破了传统的调试代码的方式进行单板驱动开发,将驱动的开发转化为对能力配置表的参数配置,进而实现对单板各类外设能力的支撑、时序参数的调整、读写性能的控制、操作系统能力体现等功能,对系统版本的维护也变成对配置文件的入库,在整机生产阶段通过对配置文件的更改完成版本的烧写发布,其中能力配置表转为二进制文件工具由驱动开发框架提供,该工具通过对配置表数据读取完成4字节CRC校验位、配置文件长度等信息填充。
基于C语言实现的框架源代码资源保障了驱动开发框架的跨多种操作系统平台能力,便于在各类国产嵌入式操作系统平台移植使用。
实施例2:
在Eclipse开源工具下制作驱动开发框架:
该方案主要在于利用Ecl ipse开源工具提供的编译工具链资源,结合锐华国产操作系统支撑的多样化平台,梳理出方案各模块所需求的源代码和编译规则,生成对应的库资源,并通过驱动开发框架工程的方式嵌入到Eclipse环境中去。
实施例2:
在Linux开源包基础上进行制作驱动开发框架:
该方案主要在于利用Linux开源包提供的编译工具链资源,结合Linux自带的外围资源源代码库,梳理出方案各模块所需求的源代码和编译链接规则,生成对应的库资源,制作可出垮平台执行的SDK工具包。
实施例3:
在vxBus框架的基础上制作驱动开发框架:
该方案主要在于利用VxBus开源框架的基础提供的资源层,完成各类功能模块的归类,并在此基础上进行改进,关联驱动与操作系统接口模块,开发工具模块,最终形成覆盖上述发明中的各功能模块压缩包,由于国产嵌入式操作系统基本都提供了VxWorks的兼容层,因此不需安装即可关联到国产嵌入式操作系统开发环境中进行使用。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (8)

1.一种嵌入式操作系统的驱动开发系统,其特征在于,包括:
硬件处理层:实现底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,被初始化控制层和常用工具层调用;
初始化控制层:承接硬件处理层和能力配置层,调用硬件处理层的接口和能力配置层的参数,完成硬件的初始化;
能力配置层:提供开发框架中软件开发所需的参数,将所述参数作为配置表被初始化控制层和常用工具层使用;
常用工具层:调用硬件处理层接口完成标准化测试及数据格式转化,并提供接口给业务软件开发使用;
所述硬件处理层中具有:
协议处理模块:是协议和规范软件代码实现的集合库,进行代码化的协议处理,所述代码化的协议处理包括:将标准协议或者规范进行流程化代码实现,封装为各类访问控制函数,提供给硬件适配模块或初始化控制层调用;
硬件适配模块:针对不同的硬件外设,调用协议处理模块完成对外设的操作控制;针对不同的硬件外设,从能力配置层获取驱动外设访问控制参数,导入控制参数调用协议处理模块中的函数完成对外设的访问初始化;完成各类常用策略的函数实现,包括:对单个寄存器、芯片存储空间或者异常控制的处理策略;
自定义模块:定制实现框架中各业务层未包含的外设驱动硬件实现,或者定制实现对器件的定制化控制应用;提供函数接口供硬件适配模块调用。
2.根据权利要求1所述的嵌入式操作系统的驱动开发系统,其特征在于,所述初始化控制层读取配置文件信息,依据配置文件信息按照流程顺序完成驱动支持外设的初始化,完成操作系统接口的注册,使得外设进入系统工作状态;
初始化控制层中具有:
驱动初始化模块:查询配置表,获取配置信息,通过调用硬件适配模块中的函数接口和获取的配置信息依次完成系统中覆盖的所有外设的初始化;
OS接口注册模块:将驱动与操作系统之间的接口对接,读取配置文件中关于接口注册的配置参数,对需要进行操作系统接口注册的设备与操作系统进行接口绑定;
自定义接口模块:对外设进行非标准化访问控制,包括:直接访问存储芯片的预留空间,将协议规范层的接口传递给上层进行直接调用。
3.根据权利要求1所述的嵌入式操作系统的驱动开发系统,其特征在于,所述能力配置层中具有:包含驱动能力参数模块、硬件参数模块和自定义参数模块这三个参数配置模块;
所述三个参数配置模块将外设访问控制进行参数化,并保存在xml配置文件中。
4.根据权利要求1所述的嵌入式操作系统的驱动开发系统,其特征在于,所述常用工具层中具有:
转换工具模块包括:驱动开发过程中用到的大小端转化、网络字节序接口、2字节short数据类型转化4字节word数据类型接口中的任一种或任多种工具;
调试工具模块包括:FTP客户端、Xmodem客户端、IPMI工具、存储器件性能测试工具、日志记录工具中的任一种或任多种工具;所述日志记录工具提供基于内存存储、终端输出和非易失存储模式的同时使用和单独使用;
健康管理模块:进行上电自检、周期自检和启动自检函数流程实现,提供传感器告警策略、系统关机策略、服务策略中的任一种或任多种策略;对外提供故障查询接口、告警阈值动态设置接口中的任一种或任多种接口。
5.一种嵌入式操作系统的驱动开发方法,其特征在于,包括:
硬件处理步骤:设置硬件处理层,所述硬件处理层:实现底层硬件在协议或规范层面的控制封装,对外是一类接口的组合集,被初始化控制层和常用工具层触发;
初始化控制步骤:设置初始化控制层,所述初始化控制层:承接硬件处理层和能力配置层,触发硬件处理层的接口和能力配置层的参数,完成硬件的初始化;
能力配置步骤:设置能力配置层,所述能力配置层:提供开发框架中软件开发所需的参数,将所述参数作为配置表被初始化控制层和常用工具层使用;
常用工具处理步骤:设置常用工具层,所述常用工具层:触发硬件处理层接口完成标准化测试及数据格式转化,并提供接口给业务软件开发使用;
硬件处理层中具有:
触发协议处理模块,所述协议处理模块:是协议和规范软件代码实现的集合库,进行代码化的协议处理,所述代码化的协议处理包括:将标准协议或者规范进行流程化代码实现,封装为各类访问控制函数,提供给硬件适配模块或初始化控制层触发;
触发硬件适配模块,所述硬件适配模块:针对不同的硬件外设,调用协议处理模块完成对外设的操作控制;针对不同的硬件外设,从能力配置层获取驱动外设访问控制参数,导入控制参数调用协议处理模块中的函数完成对外设的访问初始化;完成各类常用策略的函数实现,包括:对单个寄存器、芯片存储空间或者异常控制的处理策略;
触发自定义模块,所述自定义模块:定制实现框架中各业务层未包含的外设驱动硬件实现,或者定制实现对器件的定制化控制应用;提供函数接口供硬件适配模块调用。
6.根据权利要求5所述的嵌入式操作系统的驱动开发方法,其特征在于,所述初始化控制步骤:读取配置文件信息,依据配置信息按照流程顺序完成驱动支持外设的初始化,完成操作系统接口的注册,使得外设进入系统工作状态;
初始化控制层中具有:
触发驱动初始化模块,所述驱动初始化模块:查询配置表,获取配置信息,通过调用硬件适配模块中的函数接口和获取的配置信息依次完成系统中覆盖的所有外设的初始化;
触发OS接口注册模块,所述OS接口注册模块:将驱动与操作系统之间的接口对接,读取配置文件中关于接口注册的配置参数,对需要进行操作系统接口注册的设备与操作系统进行接口绑定;
触发自定义接口模块,所述自定义接口模块:对外设进行非标准化访问控制,包括:直接访问存储芯片的预留空间,将协议规范层的接口传递给上层进行直接调用。
7.根据权利要求5所述的嵌入式操作系统的驱动开发方法,其特征在于,所述能力配置层中具有:触发包含驱动能力参数模块、硬件参数模块和自定义参数模块三个参数配置模块;
三个参数配置模块:将外设访问控制进行参数化,并保存在xml配置文件中;
所述常用工具层中具有:
触发转换工具模块,所述转换工具模块包括:驱动开发过程中常用到大小端转化、网络字节序接口、2字节short强转4字节word接口;
触发调试工具模块,所述调试工具模块包括:FTP客户端、Xmodem客户端、IPMI工具、存储器件性能测试工具、日志记录工具;所述日志记录工具提供基于内存存储、终端输出和非易失存储模式的同时使用和单独使用;
触发健康管理模块,所述健康管理模块:进行系统上电自检、周期自检和启动自检函数流程实现,提供传感器告警策略、系统关机策略、服务策略;对外提供故障查询、告警阈值动态设置接口。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求5至7中任一项所述的嵌入式操作系统的驱动开发方法的步骤。
CN201811132147.0A 2018-09-27 2018-09-27 嵌入式操作系统的驱动开发系统、方法及介质 Active CN109508202B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811132147.0A CN109508202B (zh) 2018-09-27 2018-09-27 嵌入式操作系统的驱动开发系统、方法及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811132147.0A CN109508202B (zh) 2018-09-27 2018-09-27 嵌入式操作系统的驱动开发系统、方法及介质

Publications (2)

Publication Number Publication Date
CN109508202A CN109508202A (zh) 2019-03-22
CN109508202B true CN109508202B (zh) 2021-07-30

Family

ID=65746249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811132147.0A Active CN109508202B (zh) 2018-09-27 2018-09-27 嵌入式操作系统的驱动开发系统、方法及介质

Country Status (1)

Country Link
CN (1) CN109508202B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502283A (zh) * 2019-08-19 2019-11-26 深圳大趋智能科技有限公司 一种产品外设兼容方法及系统
CN110557395B (zh) * 2019-09-06 2021-07-02 东信和平科技股份有限公司 一种安全元件访问接口协议适配方法及装置
EP4052147A4 (en) * 2019-10-30 2023-11-08 Dull IP Pty Ltd DATA COMMUNICATION METHOD
CN110851140B (zh) * 2019-11-11 2023-04-07 艾体威尔电子技术(北京)有限公司 一种实现单片机动态库的系统及方法
CN112988144B (zh) * 2019-12-02 2023-09-12 北京华航无线电测量研究所 通用嵌入式事件驱动软件开发框架及使用方法
CN111061460B (zh) * 2019-12-13 2023-09-29 杭州中恒电气股份有限公司 基于嵌入式系统的通用软件开发平台
CN111159123B (zh) * 2019-12-30 2023-07-14 中国兵器装备集团自动化研究所 一种嵌入式可靠参数储存文件系统及方法
CN111309291B (zh) * 2020-01-19 2021-09-24 北京航空航天大学 一种模块化嵌入式软件架构及其定制方法、定制系统
CN113297024A (zh) * 2020-02-21 2021-08-24 北京猎户星空科技有限公司 一种硬件管理方法、算法执行方法、相关装置及机器人
CN111722870B (zh) * 2020-06-10 2023-05-02 中国第一汽车股份有限公司 一种电控单元的驱动配置方法、装置、设备及存储介质
CN112256281A (zh) * 2020-09-23 2021-01-22 深圳市芯盛智能信息有限公司 一种嵌入式系统应用程序动态加载的方法
CN112230998A (zh) * 2020-10-14 2021-01-15 天津津航计算技术研究所 一种VxBusⅡ驱动架构PCI设备动态加载方法
CN112306467A (zh) * 2020-11-10 2021-02-02 深圳市奋达智能技术有限公司 穿戴式设备的sdk实现方法及装置
CN113268275B (zh) * 2021-07-19 2021-09-28 成都菁蓉联创科技有限公司 一种基于微内核的硬件设备驱动系统及其驱动方法
CN115033230B (zh) * 2022-06-27 2024-02-27 中国电力科学研究院有限公司 嵌入式硬件平台的驱动程序生成方法、装置、设备及介质
CN117519783B (zh) * 2024-01-08 2024-04-26 利尔达科技集团股份有限公司 一种产品开发包与操作系统和硬件分离的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268238A (zh) * 2013-05-15 2013-08-28 山东超越数控电子有限公司 基于ReWorks操作系统的USB摄像头驱动实现的方法
CN104965802A (zh) * 2015-06-11 2015-10-07 哈尔滨工程大学 基于corba标准的多功能射频综合一体化装置和系统
CN106648615A (zh) * 2016-11-07 2017-05-10 中国航空无线电电子研究所 一种基于VxWorks的BSP代码开发系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026253B2 (en) * 2011-11-22 2015-05-05 Honeywell International Inc. Building controller with operating system interaction through an integrated display

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268238A (zh) * 2013-05-15 2013-08-28 山东超越数控电子有限公司 基于ReWorks操作系统的USB摄像头驱动实现的方法
CN104965802A (zh) * 2015-06-11 2015-10-07 哈尔滨工程大学 基于corba标准的多功能射频综合一体化装置和系统
CN106648615A (zh) * 2016-11-07 2017-05-10 中国航空无线电电子研究所 一种基于VxWorks的BSP代码开发系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"VxWorks的移植和BSP定制过程";baiyang_sky;《公开网址:https://blog.csdn.net/baiyang20140704/article/details/45028907》;20150413;第1-13页 *

Also Published As

Publication number Publication date
CN109508202A (zh) 2019-03-22

Similar Documents

Publication Publication Date Title
CN109508202B (zh) 嵌入式操作系统的驱动开发系统、方法及介质
CN104050080B (zh) 用户态调试linux内核的方法及系统
CN103823698A (zh) Fpga和dsp目标程序的烧写和启动的方法及设备
US7225357B2 (en) SDIO card development system
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
CN102436385A (zh) 一种可编程逻辑器件配置文件在线更新装置
US20090083271A1 (en) Automatically Adding Bytecode to a Software Application to Determine Database Access Information
CN103136107A (zh) 一种嵌入式程序动态分配内存的变量调试方法
CN1752946A (zh) 一种嵌入式系统的调试方法及其系统
CN105320531A (zh) 一种基于MicroBlaze软核的FPGA软件在线升级方法
CN112596743B (zh) 一种基于jtag接口的军用fpga通用重构电路
EP1915692A2 (en) Systems, methods and computer program products for safety checking executable application programs in a module
CN110119282A (zh) 一种基于通用嵌入式计算机的物联网终端及系统
CN104503898A (zh) 一种嵌入式软件调试参数实时查看的方法及系统
CN105022869B (zh) 一种快速可重构的mcu仿真方法
CN109918338B (zh) 安全芯片操作系统测试装置
US20120110383A1 (en) Method and apparatus for off-line analyzing crashed programs
CN106293687A (zh) 一种打包流程的控制方法,及装置
CN111124373A (zh) 一种测试软件开发方法、装置及测试设备
CN104572425B (zh) 程序调试方法、装置及系统
CN109947476B (zh) 一种运行时栈空间的统计方法及系统
CN100392591C (zh) Pc架构嵌入式系统中上电自检的设计方法
CN105868092A (zh) 一种日志文件的处理方法及装置
CN109753393A (zh) 一种基于自测试的1553总线接口电路快速筛选系统及方法
US20030003432A1 (en) System and method for automated assertion acquisition in a Java compatibility testing environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant