CN115033230B - 嵌入式硬件平台的驱动程序生成方法、装置、设备及介质 - Google Patents
嵌入式硬件平台的驱动程序生成方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115033230B CN115033230B CN202210736929.5A CN202210736929A CN115033230B CN 115033230 B CN115033230 B CN 115033230B CN 202210736929 A CN202210736929 A CN 202210736929A CN 115033230 B CN115033230 B CN 115033230B
- Authority
- CN
- China
- Prior art keywords
- interface
- driving
- driver
- control chip
- main control
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000002093 peripheral effect Effects 0.000 claims abstract description 118
- 238000003860 storage Methods 0.000 claims abstract description 62
- 238000004806 packaging method and process Methods 0.000 claims abstract description 49
- 238000004891 communication Methods 0.000 claims abstract description 38
- 238000005070 sampling Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 15
- 238000010200 validation analysis Methods 0.000 claims description 15
- 230000009849 deactivation Effects 0.000 claims description 7
- 238000011161 development Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于嵌入式系统技术领域,公开一种嵌入式硬件平台的驱动程序生成方法、装置、设备及介质;包括:建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口。本发明通过将主控芯片驱动与外设器件驱动分离,定义标准化访问接口,建立嵌入式装备驱动树,优化嵌入式装置驱动生成方案,提升了软件对硬件平台的适应性和可移植性,减少外设驱动的开发工作量。
Description
技术领域
本发明属于嵌入式系统技术领域,特别涉及一种嵌入式硬件平台的驱动程序生成方法、装置、设备及介质。
背景技术
在变电站中,嵌入式装置硬件设计普遍使用平台化架构,保护、测控、安控等装置在同一硬件平台上,按照装置类型开发对应业务软件即可实现。其中业务软件可分为功能性软件和包含操作系统的软件平台,功能软件每类型装置都不相同,按照各类装置技术规范完成软件开发。而操作系统软件平台则基本具有相同的架构和层次关系,其中与硬件最为紧密的是驱动层。驱动层实现硬件平台各个功能模块与软件平台的交互。现有基于进口芯片方案的嵌入式装置软件平台的驱动层是在当前硬件芯片的基础上,直接在操作系统中集成与之相适配的驱动程序,驱动程序与操作系统、硬件平台芯片紧密捆绑,平台硬件升级换代以5年为周期,这种捆绑模式可以满足产品供货要求。随着国产化芯片的广泛应用,国产各类芯片升级换代周期大幅缩减,2年左右就会出现跨代的升级产品,如果依然使用现有的驱动程序与硬件、操作系统捆绑模式,产品的软件移植需要耗费大量时间和精力进行调试。因此,迫切需要减少外设驱动的开发工作量。
为解决操作系统与硬件设备间的驱动解耦问题,在嵌入式Linux系统中普遍使用BSP来集成硬件设备驱动。BSP源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义好的接口进行交互。BSP是所有与硬件相关的代码体的集合。
BSP和操作系统绑定运行在嵌入式主板上,BSP在嵌入式设备开启时检测、初始化嵌入式系统及设备(设置栈指针,中断分配,内存初始化等)、调度操作系统向硬件发出的指令,此外BSP还包含和嵌入式系统有关的基本驱动(串口,网口等),此外程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的业务功能放到BSP中。
BSP软件与其他软件的最大区别在于BSP软件有一整套模板和格式,开发人员必须严格遵守,不允许任意发挥。在BSP软件中,绝大部分文件的文件名和所要完成的功能都是固定的。所以,BSP软件的开发一般来说都是在一个基本成型的BSP软件上进行修改,以适应不同单板的需求。
BSP仅解决了操作系统与硬件的解耦问题,但没有考虑仅升级主控芯片,外设硬件不升级情况下的驱动移植情况。硬件平台升级主要以主控芯片为对象,其他的存储、网络、内存等硬件在综合考虑可靠性和成本情况下,升级并不会非常频繁。BSP技术无法避免因升级主控芯片带来的整个BSP软件更新和调试的问题。
发明内容
本发明的目的在于提供一种嵌入式硬件平台的驱动程序生成方法、装置、设备及介质,以提升软件对硬件平台的适应性和可移植性,减少外设驱动的开发工作量,支持业务平滑载入、灵活部署的需求。
为了实现上述目的,本发明采用如下技术方案:
第一方面,本发明提供一种嵌入式硬件平台的驱动程序生成方法,包括:
建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;所述驱动树,为以主控芯片与各外设器件间的系统总线接口为基础,支持各外设器件驱动动态加载的树形层次结构;
将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;所述主控芯片调用接口,用于提供主控芯片的标准化访问接口;
在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口;所述结构化业务数据标准访问接口,内部封装了包括主控芯片调用接口以及驱动树接口,用于为上层业务软件调用采样、通信、存储、开入/开出4类基础功能时提供标准化接口,实现采样、通信、存储、开入/开出4类基础功能从主控芯片调用接口和驱动树接口获取对应的数据,完成数据采集、处理、存储、通信和开入/开出功能。
本发明进一步的改进在于:所述建立通用驱动接口的步骤,具体包括:
对外设器件驱动接口进行封装,形成标准化的通用驱动接口。
本发明进一步的改进在于:所述对对外设器件驱动接口进行封装的步骤中,所述外设器件为内存、存储、网络、USB、SPI、I2C中一种或者多种。
本发明进一步的改进在于:所述在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设驱动程序版本,建立设备驱动树的步骤,具体包括:
建立系统总线通用访问接口,包括设备注册、设备注销、设备生效、设备停用4类接口,生成驱动树干;
在驱动树干上生成多种外设器件的驱动树杈,获得设备驱动树。
本发明进一步的改进在于:所述在驱动树干上生成多种外设器件的驱动树杈的步骤,具体包括:
一种外设器件通过设备注册接口,提供对应外设器件的类型、型号、版本信息,在驱动树干中建立对应外设器件的驱动索引;外设器件通过设备生效接口,向驱动树干提供当前外设器件的驱动地址信息,驱动树干调用通用驱动接口,并将驱动接口参数设置为注册获取的器件类型、型号和版本信息,实现对应外设器件在驱动树干中的生效使用,生成对应外设器件的驱动树杈。
本发明进一步的改进在于:所述将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口的步骤,具体包括:
将主控芯片驱动进行封装,按照类型和版本号形成处理器驱动软件包;
将生成的各类型、各版本的处理器驱动软件包,按照BSP软件驱动部署要求,安装至BSP系统中,形成主控芯片的驱动。
本发明进一步的改进在于:所述在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口的步骤,具体包括:
在BSP与操作系统的接口层,按照采样、通信、存储、开入/开出4类业务生成标准API访问接口;
封装内存、SPI和I2C驱动接口,形成采样API接口;
封装内存、SPI、主控芯片驱动和网络驱动接口,形成通信API接口;
封装内存、SPI、主控芯片驱动和存储驱动接口,形成存储API接口;
封装内存、I2C、主控芯片驱动和USB驱动接口,形成开入/开出API接口。
第二方面,本发明提供一种嵌入式硬件平台的驱动程序生成装置,包括:
驱动树模块,用于建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
主控芯片驱动模块,用于将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;
标准化访问接口模块,用于在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口。
第三方面,本发明提供一种嵌入式硬件平台的驱动程序生成装置,包括:
主控芯片调用接口,用于将主控芯片驱动进行封装形成驱动软件包,将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,供结构化业务数据标准访问接口;
驱动树接口,用于建立通用驱动接口,在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
结构化业务数据标准访问接口,用于上层业务软件通过调用驱动树接口和主控芯片调用接口,进行采样、通信、存储、开入/开出4类基础功能访问时,从主控芯片调用接口和驱动树接口获取对应的数据,完成数据采集、处理、存储、通信和开入/开出功能。
第四方面,本发明提供一种电子设备,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现所述的嵌入式硬件平台的驱动程序生成方法。
第五方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现所述的嵌入式硬件平台的驱动程序生成方法。
相对于现有技术,本发明具有以下有益效果:
本发明提供一种嵌入式硬件平台的驱动程序生成方法、装置、设备及介质,建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;本发明通过将主控芯片驱动与外设器件驱动分离,定义采样、通信、存储、开入/开出4类结构化业务数据标准访问接口,建立嵌入式装备驱动树,优化嵌入式装置驱动生成方案,提升了软件对硬件平台的适应性和可移植性,减少外设驱动的开发工作量,支持业务平滑载入、灵活部署的需求。
进一步的,本发明在嵌入式硬件平台中使用驱动树技术,建立树形结构的外设驱动按需加载机制;定义了4类硬件平台业务数据标准化访问接口,业务软件通过标准化接口实现在不同硬件平台上的快速适配和移植。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一种嵌入式硬件平台的驱动程序生成方法的流程示意图;
图2为嵌入式硬件平台主控芯片驱动与外设驱动分离设计示意图;
图3为嵌入式硬件平台驱动树总体架构示意图;
图4为本发明一种嵌入式硬件平台的驱动程序生成装置的结构框图;
图5为本发明一种电子设备的结构框图。
具体实施方式
下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本发明所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
相关术语解释
驱动:全称设备驱动程序,是添加到操作系统中的特殊程序,包含有关硬件设备的内部寄存器、控制器等调用和控制接口,使软件与相应的设备进行交互,达到采集或者控制硬件的效果。
变电站嵌入式装置:面向变电站专业需求开发的小型化就地计算处理单元,包括变电站保护、测控、故障录波等间隔层装置。
驱动树:以主处理器与各外设(内存、网络、串口、显示)间的系统总线为基础,支持嵌入式装置的各类外设芯片驱动动态加载的树形层次结构。
API接口:为保证服务提供方可以为不同客户提供标准化的服务调用接口,制定一套规范的程序调用接口,客户只需按照调用接口说明使用接口,即可完成对服务提供方的访问和控制。
主控芯片:嵌入式硬件平台的中央处理器,一般是通用型CPU或者SoC芯片;
外设器件:嵌入式硬件平台除中央处理器之外的内存、存储、网络、串口、开入/开出、AD、FPGA、时钟等器件。
实施例1
请参阅图1所示,本发明提供一种嵌入式硬件平台的驱动程序生成方法,包括以下步骤:
S101、建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
S102、将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;
S103、在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口。
在一具体实施方式中,所述建立通用驱动接口的步骤,具体包括:对外设器件驱动接口进行封装,形成标准化的通用驱动接口。
在一具体实施方式中,所述对对外设器件驱动接口进行封装的步骤中,所述外设器件为内存、存储、网络、USB、SPI、I2C中一种或者多种。
在一具体实施方式中,所述在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设驱动程序版本,建立设备驱动树的步骤,具体包括:
建立系统总线通用访问接口,包括设备注册、设备注销、设备生效、设备停用4类接口,生成驱动树干;
在驱动树干上生成多种外设器件的驱动树杈,获得设备驱动树。
在一具体实施方式中,所述在驱动树干上生成多种外设器件的驱动树杈的步骤,具体包括:
一种外设器件通过设备注册接口,提供对应外设器件的类型、型号、版本信息,在驱动树干中建立对应外设器件的驱动索引;外设器件通过设备生效接口,向驱动树干提供当前外设器件的驱动地址信息,驱动树干调用通用驱动接口,并将驱动接口参数设置为注册获取的器件类型、型号和版本信息,实现对应外设器件在驱动树干中的生效使用,生成对应外设器件的驱动树杈。
在一具体实施方式中,所述将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口的步骤,具体包括:
将主控芯片驱动进行封装,按照类型和版本号形成处理器驱动软件包;
将生成的各类型、各版本的处理器驱动软件包,按照BSP软件驱动部署要求,安装至BSP系统中,形成主控芯片的驱动。
在一具体实施方式中,所述在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口的步骤,具体包括:
在BSP与操作系统的接口层,按照采样、通信、存储、开入/开出4类业务生成标准API访问接口;
封装内存、SPI和I2C驱动接口,形成采样API接口;
封装内存、SPI、主控芯片驱动和网络驱动接口,形成通信API接口;
封装内存、SPI、主控芯片驱动和存储驱动接口,形成存储API接口;
封装内存、I2C、主控芯片驱动和USB驱动接口,形成开入/开出API接口。
实施例2
请参阅图2及图3所示,本发明提出一种嵌入式硬件平台的驱动程序生成方法,包括以下步骤:
S1、外设通用驱动树生成:
通过将内存(DDR)、存储(SSD)、网络(NET)、USB、SPI、I2C等主控芯片以外的外设器件驱动接口进行封装,形成标准化的通用驱动接口。在通用驱动接口下,以系统总线接口作为基础,通过外设类型、外设型号、外设版本的接口参数区分不同外设驱动程序版本,建立设备驱动树,实现各类外设驱动的灵活部署。主要步骤如下:
S11、按外设器件类型定义通用驱动接口,包括内存、存储、网络、USB、SPI、I2C器件的寄存器;
S12、建立系统总线通用访问接口,包括设备注册、设备注销、设备生效、设备停用4类接口,生成系统总线驱动管理服务程序(简称驱动树干);
S13、以内存为例,介绍具体的各类型器件驱动树杈生成步骤:
S131、内存器件通过设备注册接口,提供该外设的类型、型号、版本信息,在驱动树干中建立该外设器件的驱动索引;
S132、外设器件通过设备生效接口,向驱动树干提供当前器件的驱动地址信息,驱动树干调用步骤S1中的通用驱动接口,并将驱动接口参数设置为注册获取的器件类型、型号和版本信息,从而实现该外设器件在驱动树干中的生效使用,生成该类型外设驱动树杈。
S14、逐一完成其他各类器件的注册和生效,生成外设通用驱动树。
S15、当某个类型外设器件的驱动版本发生变化,可在该类型器件现有驱动树杈的基础上,注册新版本的驱动,并生效新的驱动程序,实现在原驱动树杈基础上生成新的驱动版本树杈。
S16、当硬件平台所适应的外设器件的硬件型号、驱动版本发生变化时,调用步骤S12中的设备停用接口,将已注册的器件进行停用。根据需要,如该型号或者版本的器件后续不会继续使用,调用步骤S12中的设备注销接口,将已注册的该版本器件驱动进行注销。
S17、将生成的设备驱动树打包成通用外设软件驱动包,按照BSP软件驱动部署要求,安装设备驱动树至BSP系统中。
S2、主控芯片驱动软件包生成:对CPU、MCU、SoC等主控芯片驱动进行封装,打包形成适用于不同主控芯片的驱动软件包,按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片的驱动。
S21、将CPU、MCU、SoC芯片厂商提供的驱动程序进行封装,按照类型和版本号形成处理器驱动软件包;
S22、将生成的各类型、各版本的处理器驱动软件包,按照BSP软件驱动部署要求,安装至BSP系统中。
S3、结构化业务数据标准访问API接口封装:在外设通用驱动接口和主控芯片驱动软件包的基础上,按照采样、通信、存储、开入/开出4类业务标准化访问接口,上述业务功能通过访问这4类标准接口即可从硬件平台获取需要的数据,完成数据采集、处理、存储、通信和开入/开出等功能。
S31、在BSP与操作系统的接口层,按照采样、通信、存储、开入/开出4类业务生成标准API访问接口;
S32、封装内存、SPI和I2C驱动接口,形成采样API接口,业务功能通过调用采样API接口,调用SPI和I2C驱动从硬件平台获取实时采样数据;
S33、封装内存、SPI、主控芯片驱动和网络驱动接口,形成通信API接口,将处理后的数据通过硬件平台对外发送;
S34、封装内存、SPI、主控芯片驱动和存储驱动接口,形成存储API接口,实现采集数据或处理后的数据在硬件平台中的存储芯片上的读写操作;
S35、封装内存、I2C、主控芯片驱动和USB驱动接口,形成开入/开出API接口,实现接收硬件平台的开入信号,发送开出信号;
S36、安装在操作系统中的业务应用可通过直接调用封装好的结构化业务数据标准访问API接口,实现对硬件平台的访问与控制。
嵌入式硬件平台主控芯片面临频繁升级和更新情况,外设器件驱动与主控芯片驱动紧密捆绑,主控芯片驱动的升级影响所有外设驱动,外设驱动升级也影响主控芯片驱动,任何一方升级都需将整个BSP软件重新适配调试,造成稳定性、可靠性、安全性隐患。
本发明将主控芯片驱动与外设驱动分离部署,并将驱动进行二次封装,定义外设驱动树接口和主控芯片驱动接口,任何一方驱动改动,不影响另一方驱动,减少驱动调试工作量。
本发明通过将外设器件按类型定义为通用型访问接口,不同型号、不同版本驱动通过驱动树实现统一调用和管理,任何外设驱动升级不会影响其他外设和主控芯片驱动。
本发明将BSP驱动层封装形成标准访问接口,明确4类通用型业务接口,硬件平台上层的操作系统和业务软件无需关心底层设备驱动情况,通过调用通用接口即可实现功能,更换硬件平台业务不需要对现有的接口进行改动,降低软件移植工作量。
实施例3
请参阅图3所示,本发明提一种供嵌入式硬件平台的驱动程序生成装置,包括:
主控芯片调用接口,用于将主控芯片驱动进行封装形成驱动软件包,将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,供结构化业务数据标准访问接口;
驱动树接口,用于建立通用驱动接口,在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
结构化业务数据标准访问接口,用于上层业务软件通过调用驱动树接口和主控芯片调用接口,进行采样、通信、存储、开入/开出4类基础功能访问时,从主控芯片调用接口和驱动树接口获取对应的数据,完成数据采集、处理、存储、通信和开入/开出功能。
实施例4
请参阅图4所示,本发明提供一种嵌入式硬件平台的驱动程序生成装置,包括:
驱动树模块,用于建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
主控芯片驱动模块,用于将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;
标准化访问接口模块,用于在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口。
在一具体实施方式中,所述建立通用驱动接口的步骤,具体包括:
对外设器件驱动接口进行封装,形成标准化的通用驱动接口。
在一具体实施方式中,所述对对外设器件驱动接口进行封装的步骤中,所述外设器件为内存、存储、网络、USB、SPI、I2C中一种或者多种。
在一具体实施方式中,所述在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设驱动程序版本,建立设备驱动树的步骤,具体包括:
建立系统总线通用访问接口,包括设备注册、设备注销、设备生效、设备停用4类接口,生成驱动树干;
在驱动树干上生成多种外设器件的驱动树杈,获得设备驱动树。
在一具体实施方式中,所述在驱动树干上生成多种外设器件的驱动树杈的步骤,具体包括:
一种外设器件通过设备注册接口,提供对应外设器件的类型、型号、版本信息,在驱动树干中建立对应外设器件的驱动索引;外设器件通过设备生效接口,向驱动树干提供当前外设器件的驱动地址信息,驱动树干调用通用驱动接口,并将驱动接口参数设置为注册获取的器件类型、型号和版本信息,实现对应外设器件在驱动树干中的生效使用,生成对应外设器件的驱动树杈。
在一具体实施方式中,所述将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口的步骤,具体包括:
将主控芯片驱动进行封装,按照类型和版本号形成处理器驱动软件包;
将生成的各类型、各版本的处理器驱动软件包,按照BSP软件驱动部署要求,安装至BSP系统中,形成主控芯片的驱动。
在一具体实施方式中,所述在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口的步骤,具体包括:
在BSP与操作系统的接口层,按照采样、通信、存储、开入/开出4类业务生成标准API访问接口;
封装内存、SPI和I2C驱动接口,形成采样API接口;
封装内存、SPI、主控芯片驱动和网络驱动接口,形成通信API接口;
封装内存、SPI、主控芯片驱动和存储驱动接口,形成存储API接口;
封装内存、I2C、主控芯片驱动和USB驱动接口,形成开入/开出API接口。
实施例5
请参阅图5所示,本发明还提供一种嵌入式硬件平台的驱动程序生成方法的电子设备100;所述电子设备100包括存储器101、至少一个处理器102、存储在所述存储器101中并可在所述至少一个处理器102上运行的计算机程序103及至少一条通讯总线104。
存储器101可用于存储所述计算机程序103,所述处理器102通过运行或执行存储在所述存储器101内的计算机程序,以及调用存储在存储器101内的数据,实现实施例1或2所述的一种嵌入式硬件平台的驱动程序生成方法步骤。所述存储器101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备100的使用所创建的数据(比如音频数据)等。此外,存储器101可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
所述至少一个处理器102可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器102可以是微处理器或者该处理器102也可以是任何常规的处理器等,所述处理器102是所述电子设备100的控制中心,利用各种接口和线路连接整个电子设备100的各个部分。
所述电子设备100中的所述存储器101存储多个指令以实现一种嵌入式硬件平台的驱动程序生成方法,所述处理器102可执行所述多个指令从而实现:
建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;
在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口。
实施例6
所述电子设备100集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器及只读存储器(ROM,Read-Only Memory)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (9)
1.嵌入式硬件平台的驱动程序生成方法,其特征在于,包括:
建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;所述驱动树,为以主控芯片与各外设器件间的系统总线接口为基础,支持各外设器件驱动动态加载的树形层次结构;
将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口;所述主控芯片调用接口,用于提供可供外部调用主控芯片功能的标准化访问接口;
在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口;所述结构化业务数据标准访问接口,内部封装了包括主控芯片调用接口以及驱动树接口,用于为上层业务软件调用采样、通信、存储、开入/开出4类基础功能时提供标准化接口,实现采样、通信、存储、开入/开出4类基础功能从主控芯片调用接口和驱动树接口获取对应的数据,完成数据采集、处理、存储、通信和开入/开出功能;
所述在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设驱动程序版本,建立设备驱动树的步骤,具体包括:
建立系统总线通用访问接口,包括设备注册、设备注销、设备生效、设备停用4类接口,生成驱动树干;
在驱动树干上生成多种外设器件的驱动树杈,获得设备驱动树;
所述在驱动树干上生成多种外设器件的驱动树杈的步骤,具体包括:
一种外设器件通过设备注册接口,提供对应外设器件的类型、型号、版本信息,在驱动树干中建立对应外设器件的驱动索引;外设器件通过设备生效接口,向驱动树干提供当前外设器件的驱动地址信息,驱动树干调用通用驱动接口,并将驱动接口参数设置为注册获取的器件类型、型号和版本信息,实现对应外设器件在驱动树干中的生效使用,生成对应外设器件的驱动树杈。
2.根据权利要求1所述的嵌入式硬件平台的驱动程序生成方法,其特征在于,所述建立通用驱动接口的步骤,具体包括:
对外设器件驱动接口进行封装,形成标准化的通用驱动接口。
3.根据权利要求2所述的嵌入式硬件平台的驱动程序生成方法,其特征在于,所述对对外设器件驱动接口进行封装的步骤中,所述外设器件为内存、存储、网络、USB、SPI、I2C中一种或者多种。
4.根据权利要求1所述的嵌入式硬件平台的驱动程序生成方法,其特征在于,所述将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,形成主控芯片调用接口的步骤,具体包括:
将主控芯片驱动进行封装,按照类型和版本号形成处理器驱动软件包;
将生成的各类型、各版本的处理器驱动软件包,按照BSP软件驱动部署要求,安装至BSP系统中,形成主控芯片的驱动。
5.根据权利要求1所述的嵌入式硬件平台的驱动程序生成方法,其特征在于,所述在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类结构化业务数据标准访问接口的步骤,具体包括:
在BSP与操作系统的接口层,按照采样、通信、存储、开入/开出4类业务生成标准API访问接口;
封装内存、SPI和I2C驱动接口,形成采样API接口;
封装内存、SPI、主控芯片驱动和网络驱动接口,形成通信API接口;
封装内存、SPI、主控芯片驱动和存储驱动接口,形成存储API接口;
封装内存、I2C、主控芯片驱动和USB驱动接口,形成开入/开出API接口。
6.嵌入式硬件平台的驱动程序生成装置,其特征在于,包括:
驱动树模块,用于建立通用驱动接口;在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
主控芯片驱动模块,用于将主控芯片驱动进行封装形成驱动软件包;将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成;
标准化访问接口模块,用于在通用驱动接口和主控芯片驱动的基础上,形成采样、通信、存储、开入/开出4类业务的结构化业务数据标准访问接口;
驱动树模块在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树的步骤,具体包括:
建立系统总线通用访问接口,包括设备注册、设备注销、设备生效、设备停用4类接口,生成驱动树干;
在驱动树干上生成多种外设器件的驱动树杈,获得设备驱动树;
所述在驱动树干上生成多种外设器件的驱动树杈的步骤,具体包括:
一种外设器件通过设备注册接口,提供对应外设器件的类型、型号、版本信息,在驱动树干中建立对应外设器件的驱动索引;外设器件通过设备生效接口,向驱动树干提供当前外设器件的驱动地址信息,驱动树干调用通用驱动接口,并将驱动接口参数设置为注册获取的器件类型、型号和版本信息,实现对应外设器件在驱动树干中的生效使用,生成对应外设器件的驱动树杈。
7.嵌入式硬件平台的驱动程序生成装置,其特征在于,包括:
主控芯片调用接口,用于将主控芯片驱动进行封装形成驱动软件包,将驱动软件包按照BSP模板和格式要求,与BSP软件进行集成,供结构化业务数据标准访问接口;
驱动树接口,用于建立通用驱动接口,在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树;
结构化业务数据标准访问接口,用于上层业务软件进行采样、通信、存储、开入/开出4类基础功能访问时,从主控芯片调用接口以及驱动树接口获取对应的数据,完成数据采集、处理、存储、通信和开入/开出功能;
驱动树接口在通用驱动接口下,以系统总线接口作为基础,通过接口参数区分不同外设器件驱动程序版本,建立设备驱动树的步骤,具体包括:
建立系统总线通用访问接口,包括设备注册、设备注销、设备生效、设备停用4类接口,生成驱动树干;
在驱动树干上生成多种外设器件的驱动树杈,获得设备驱动树;
所述在驱动树干上生成多种外设器件的驱动树杈的步骤,具体包括:
一种外设器件通过设备注册接口,提供对应外设器件的类型、型号、版本信息,在驱动树干中建立对应外设器件的驱动索引;外设器件通过设备生效接口,向驱动树干提供当前外设器件的驱动地址信息,驱动树干调用通用驱动接口,并将驱动接口参数设置为注册获取的器件类型、型号和版本信息,实现对应外设器件在驱动树干中的生效使用,生成对应外设器件的驱动树杈。
8.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至5中任意一项所述的嵌入式硬件平台的驱动程序生成方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至5中任意一项所述的嵌入式硬件平台的驱动程序生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210736929.5A CN115033230B (zh) | 2022-06-27 | 2022-06-27 | 嵌入式硬件平台的驱动程序生成方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210736929.5A CN115033230B (zh) | 2022-06-27 | 2022-06-27 | 嵌入式硬件平台的驱动程序生成方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033230A CN115033230A (zh) | 2022-09-09 |
CN115033230B true CN115033230B (zh) | 2024-02-27 |
Family
ID=83127172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210736929.5A Active CN115033230B (zh) | 2022-06-27 | 2022-06-27 | 嵌入式硬件平台的驱动程序生成方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033230B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115857428B (zh) * | 2023-02-02 | 2023-06-16 | 杭州未名信科科技有限公司 | 一种控制plc设备的方法、装置、存储介质及终端 |
CN116541066B (zh) * | 2023-06-14 | 2023-10-13 | 飞腾信息技术有限公司 | 软件系统构建方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1320867A (zh) * | 2000-04-10 | 2001-11-07 | 国际商业机器公司 | 在网络处理系统中管理存储器的方法和系统 |
WO2003073265A2 (en) * | 2002-02-22 | 2003-09-04 | Xilinx, Inc. | METHOD AND SYSTEM FOR CREATING A CUSTOMIZED SUPPORT PACKAGE FOR AN FPGA-BASED SYSTEM-ON-CHIP (SoC) |
CN109508202A (zh) * | 2018-09-27 | 2019-03-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式操作系统的驱动开发系统、方法及介质 |
CN112363769A (zh) * | 2020-11-18 | 2021-02-12 | 许昌许继软件技术有限公司 | 一种自适应硬件驱动的方法及网关设备 |
CN114389918A (zh) * | 2021-12-01 | 2022-04-22 | 国网辽宁省电力有限公司鞍山供电公司 | 一种基于国产芯片的变电站数据通信网关装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251641A1 (en) * | 2004-05-05 | 2005-11-10 | Camilli Anthony M | Componentized embedded system information retrieval |
-
2022
- 2022-06-27 CN CN202210736929.5A patent/CN115033230B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1320867A (zh) * | 2000-04-10 | 2001-11-07 | 国际商业机器公司 | 在网络处理系统中管理存储器的方法和系统 |
WO2003073265A2 (en) * | 2002-02-22 | 2003-09-04 | Xilinx, Inc. | METHOD AND SYSTEM FOR CREATING A CUSTOMIZED SUPPORT PACKAGE FOR AN FPGA-BASED SYSTEM-ON-CHIP (SoC) |
CN109508202A (zh) * | 2018-09-27 | 2019-03-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式操作系统的驱动开发系统、方法及介质 |
CN112363769A (zh) * | 2020-11-18 | 2021-02-12 | 许昌许继软件技术有限公司 | 一种自适应硬件驱动的方法及网关设备 |
CN114389918A (zh) * | 2021-12-01 | 2022-04-22 | 国网辽宁省电力有限公司鞍山供电公司 | 一种基于国产芯片的变电站数据通信网关装置 |
Non-Patent Citations (2)
Title |
---|
张磊 ; .PowerPC平台引导加载程序的移植.声学与电子工程.2008,(第04期),全文. * |
罗一涵 ; 陈朔鹰 ; 赵建峰 ; 乔杨 ; .基于龙芯3A处理器的DeltaOS嵌入式系统移植.单片机与嵌入式系统应用.2016,(第10期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115033230A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115033230B (zh) | 嵌入式硬件平台的驱动程序生成方法、装置、设备及介质 | |
CN110162345B (zh) | 一种应用程序访问方法、装置和存储介质 | |
WO2023124967A1 (zh) | 软件操作系统调用Android HIDL接口的方法、设备及介质 | |
CN106371838A (zh) | 一种维护软件包依赖关系的方法及系统 | |
CN114077460B (zh) | 软件操作系统调用Android动态库HAL接口的方法、设备及介质 | |
CN111359219B (zh) | 虚幻引擎的文件处理方法、装置、设备及存储介质 | |
WO2024055757A1 (zh) | 驱动程序的硬件资源自动配置方法、装置、系统及介质 | |
CN112015404A (zh) | 超声影像诊断系统及其构建方法、超声设备和存储介质 | |
US8117368B2 (en) | System management interrupt interface wrapper | |
CN114327437A (zh) | 插件运行系统、插件运行方法以及电子设备 | |
CN114237724B (zh) | 驱动动态加载方法 | |
CN113434315B (zh) | 接口管理方法及装置、存储介质、电子设备 | |
CN103530165B (zh) | 一种应用于物联网行业的java解决方案 | |
CN1742259A (zh) | 设备表示装置和方法 | |
CN113835723A (zh) | 一种用于车辆电子控制单元的片上系统、升级系统及方法 | |
CN114579495B (zh) | 基于飞腾处理器的通用计算机固件的实现方法 | |
WO2023124170A1 (zh) | 数据处理方法、系统、终端设备及存储介质 | |
CN112650512A (zh) | 硬件驱动方法及装置、终端、存储介质 | |
CN112286568A (zh) | 一种Android系统多版本兼容方法 | |
WO2019134286A1 (zh) | 一种路径检测方法、电子设备及可读存储介质 | |
CN112579131A (zh) | 多系统设备的应用程序管理方法、装置和电子设备 | |
CN1855054A (zh) | 基于Windows平台的嵌入式应用软件开发模拟器 | |
CN117170901A (zh) | 硬件管理方法、装置、存储介质及电子设备 | |
CN117908971A (zh) | 基于微内核系统的设备资源管理方法、装置、设备和介质 | |
CN117632174A (zh) | 一种固件升级方法及装置 |
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 |