CN114416222A - 应用程序调用驱动接口的方法及装置 - Google Patents
应用程序调用驱动接口的方法及装置 Download PDFInfo
- Publication number
- CN114416222A CN114416222A CN202210050145.7A CN202210050145A CN114416222A CN 114416222 A CN114416222 A CN 114416222A CN 202210050145 A CN202210050145 A CN 202210050145A CN 114416222 A CN114416222 A CN 114416222A
- Authority
- CN
- China
- Prior art keywords
- interface
- driving
- system interface
- application program
- driver
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种应用程序调用驱动接口的方法及装置,方法包括:在驱动程序中搭建驱动框架,并针对所述驱动框架内每个功能模块创建系统接口,所述驱动框架内功能模块对应有执行不同驱动需求的驱动接口;针对所述系统接口封装实现不同驱动需求的接口逻辑,并将所述系统接口暴露至应用程序;响应于应用程序对目标驱动接口的调用请求,根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。通过上述方法可以实现应用程序与驱动接口的解耦合,解决了现有技术中由于应用程序和驱动接口之间的耦合性较强而增加软件开发时间和开发成本的问题。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种应用程序调用驱动接口的方法及装置。
背景技术
随着电子产品技术的不断发展,功能不断变大,系统硬件平台需要更多应用软件开发的支撑。具体在应用时,驱动程序作为硬件和应用的纽带,通过在驱动程序中会驱动接口,可供应用程序进行调用以实现不同的功能。
相关技术中,伴随着系统硬件平台发生修改,相应应用程序需要访问的驱动接口等也随之发生改变。例如,对于通用性输入输出接口(General Prupose Input/output,gpio),当应用程序需要控制某些模块上电、下电时,需要操作对应的gpio,一旦系统硬件平台发生改变,gpio也会相应改变;对于模拟数字转换接口(Analog-to-Digital Converter,adc),当应用程序需要读取adc接口的数值时,一旦系统硬件平台发生改变,adc的读取接口也会相应改变。针对驱动接口发生改变的情况,应用程序需要查询相应硬件原理图并修改相应的应用程序,使得应用程序的执行很大程度上需要依赖驱动接口,导致应用程序和驱动接口之间的耦合性较强,增加了软件开发时间和开发成本。
发明内容
本发明提供了一种应用程序调用驱动接口的方法及装置,能够通过在驱动程序中创建系统接口以供应用程序进行调用,从而解决了现有技术中由于应用程序和驱动接口之间的耦合性较强而增加软件开发时间和开发成本的问题。具体的技术方案如下:
第一方面,本发明实施例提供了一种应用程序调用驱动接口的方法,所述方法包括:
在驱动程序中搭建驱动框架,并针对所述驱动框架内每个功能模块创建系统接口,所述驱动框架内功能模块对应有执行不同驱动需求的驱动接口;
针对所述系统接口封装实现不同驱动需求的接口逻辑,并将所述系统接口暴露至应用程序;
响应于应用程序对目标驱动接口的调用请求,根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。
可选的,所述针对所述系统接口封装实现不同驱动需求的接口逻辑,包括:
查询内核针对所述系统接口所部署不同操作的接口函数;
根据操作需求确定系统接口所需调用的接口函数,并在所述接口函数中封装实现不同驱动需求的接口逻辑。
可选的,所述操作需求至少包括向所述系统接口中读数据和向所述系统接口中写数据,所述根据操作需求确定系统接口所需调用的接口函数,并在所述接口函数中封装实现不同驱动需求的接口逻辑,具体包括:
若所述操作需求为向所述系统接口中读数据,则确定系统接口需要调用读数据的接口函数,并在读数据的接口函数中封装实现不同驱动需求的接口逻辑;
若所述操作需求为向所述系统接口中写数据,则确定系统接口需要调用写数据的接口函数,并在写数据的接口函数中封装实现不同驱动需求的接口逻辑。
可选的,所述根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑,包括:
根据所述调用请求传递的命令参数确定所述目标驱动接口的接口类型;
按照所述接口类型的驱动需求将所述调用请求对接至针对所述接口类型创建的系统接口,并执行所述针对所述接口类型创建的系统接口中封装的接口逻辑。
可选的,当系统硬件平台中目标驱动接口的接口类型为第一接口时,所述执行所述针对所述接口类型创建的系统接口中封装的接口逻辑包括:
根据所述针对所述第一接口创建的系统接口中封装的接口逻辑,生成操作指令,所述操作指令为对功能模块执行的逻辑时序;
从设备树中获取所述第一接口的配置信息,并按照所述操作指令对所述第一接口的配置信息执行相应驱动需求对应的逻辑时序,所述设备树中记录有描述不同驱动接口的配置信息。
可选的,当系统硬件平台中目标驱动接口的接口类型为第二接口时,所述执行所述针对所述接口类型创建的系统接口中封装的接口逻辑包括:
根据所述针对所述第二接口创建的系统接口中封装的接口逻辑,在驱动的赋值处调用内核通知链将所述第二接口对应的数值传递至被所述内核通知链绑定的接口函数,所述内核通知链在驱动程序中创建;
利用所述内核通知链绑定的接口函数对所述第二接口对应的数值执行相应驱动需求。
可选的,当系统硬件平台中目标驱动接口的设备号发生改变时,所述方法还包括:
根据发生改变目标驱动接口的设备号,更新设备树中描述目标驱动接口的配置信息,并利用更新后目标驱动接口的配置信息执行相应系统接口中封装的接口逻辑。
第二方面,本发明实施例提供了一种应用程序调用驱动接口的装置,所述装置包括:
创建单元,用于在驱动程序中搭建驱动框架,并针对所述驱动框架内每个功能模块创建系统接口,所述驱动框架内功能模块对应有执行不同驱动需求的驱动接口;
封装单元,用于针对所述系统接口封装实现不同驱动需求的接口逻辑,并将所述系统接口暴露至应用程序;
执行单元,用于响应于应用程序对目标驱动接口的调用请求,根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。
可选的,所述封装单元包括:
查询模块,用于查询内核针对所述系统接口所部署不同操作的接口函数;
封装模块,用于根据操作需求确定系统接口所需调用的接口函数,并在所述接口函数中封装实现不同驱动需求的接口逻辑。
可选的,所述操作需求至少包括向所述系统接口中读数据和向所述系统接口中写数据,所述封装模块,具体用于若所述操作需求为向所述系统接口中读数据,则确定系统接口需要调用读数据的接口函数,并在读数据的接口函数中封装实现不同驱动需求的接口逻辑;
所述封装模块,具体还用于若所述操作需求为向所述系统接口中写数据,则确定系统接口需要调用写数据的接口函数,并在写数据的接口函数中封装实现不同驱动需求的接口逻辑。
可选的,所述执行单元包括:
确定模块,用于根据所述调用请求传递的命令参数确定所述目标驱动接口的接口类型;
执行模块,用于按照所述接口类型的驱动需求将所述调用请求对接至针对所述接口类型创建的系统接口,并执行所述针对所述接口类型创建的系统接口中封装的接口逻辑。
可选的,当系统硬件平台中目标驱动接口的接口类型为第一接口时,所述执行模块,具体用于根据所述针对所述第一接口创建的系统接口中封装的接口逻辑,生成操作指令,所述操作指令为对功能模块执行的逻辑时序;
所述执行模块,具体还用于从设备树中获取所述第一接口的配置信息,并按照所述操作指令对所述第一接口的配置信息执行相应驱动需求对应的逻辑时序,所述设备树中记录有描述不同驱动接口的配置信息。
可选的,当系统硬件平台中目标驱动接口的接口类型为第二接口时,所述执行模块,具体用于根据所述针对所述第二接口创建的系统接口中封装的接口逻辑,在驱动的赋值处调用内核通知链将所述第二接口对应的数值传递至被所述内核通知链绑定的接口函数,所述内核通知链在驱动程序中创建;
所述执行模块,具体还用于利用所述内核通知链绑定的接口函数对所述第二接口对应的数值执行相应驱动需求。
可选的,当系统硬件平台中目标驱动接口的设备号发生改变时,所述装置还包括:
更新单元,用于根据发生改变目标驱动接口的设备号,更新设备树中描述目标驱动接口的配置信息,并利用更新后目标驱动接口的配置信息执行相应系统接口中封装的接口逻辑。
第三方面,本发明实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述的方法。
第四方面,本发明实施例提供了一种应用调用驱动接口的设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现第一方面所述的方法。
由上述内容可知,本发明实施例提供的应用程序调用驱动接口的方法及装置,能够在驱动程序中搭建驱动框架,并针对驱动框架内每个功能模块创建系统接口,该驱动框架内功能模块对应有执行不同驱动需求的驱动接口,并针对系统接口封装实现不同驱动需求的接口逻辑,并将系统接口暴露至应用程序,进一步响应于应用程序对目标驱动接口的调用请求,根据调用请求传递的命令参数将调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。由此可知,与现有技术中由于应用程序和驱动接口之间的耦合性较强而增加软件开发时间和开发成本相比,本发明实施例通过在驱动程序中创建系统接口以供应用程序进行调用,从而解决了现有技术中由于应用程序和驱动接口之间的耦合性较强而增加软件开发时间和开发成本的问题。
此外,本实施例还可以实现的技术效果包括:
针对驱动接口发生改变的情况,无需对应用程序进行修改,降低了应用程序和驱动接口之间的耦合性,保证应用程序对不同硬件系统平台的可复用性,极大缩短了软件开发时间和开发成本。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用程序调用驱动接口的方法的流程示意图;
图2为本发明实施例提供的一种应用程序调用驱动接口的装置的组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明提供了一种应用程序调用驱动接口的方法及装置,通过在驱动程序中创建系统接口以供应用程序进行调用,从而解决了现有技术中由于应用程序和驱动接口之间的耦合性较强而增加软件开发时间和开发成本的问题。针对驱动接口发生改变的情况,无需对应用程序进行修改,降低了应用程序和驱动接口之间的耦合性,保证应用程序对不同硬件系统平台的可复用性,极大缩短了软件开发时间和开发成本。本实施例的应用程序和驱动程序可嵌入至系统硬件平台中,该系统硬件平台中部署有不同功能模块,应用程序可操作各个功能模块以实现不同的驱动功能,例如,当应用程序需要控制功能模块上、下电时,需要操作输入输出功能模块,当应用程序需要控制功能模块模拟数字转换时,需要操作模拟数字转换功能模块。
下面对本发明实施例进行详细说明。
图1为本发明实施例提供的一种应用程序调用驱动接口的方法的流程示意图。所述方法可以包括如下步骤:
S100:在驱动程序中搭建驱动框架,并针对所述驱动框架内每个功能模块创建系统接口。
在操作系统中,所有硬件设备操作到应用层都会被抽象成文件的操作,如果应用层要访问系统硬件平台中的硬件设备,必定要调用硬件设备对应的驱动接口,此时需要打开对应的设备文件,并在打开设备文件过程中,内核将应用程序和对应的驱动程序关联起来。其中,驱动框架内功能模块对应有执行不同驱动需求的驱动接口,这里功能模块为硬件设备中可实现不同应用功能的模块,例如,gps模块、wifi模块、4g模块等,驱动需求相当于用户空间和硬件设备的交互需求,具体可表现为对功能模块执行不同控制的需求,例如,对gps模块进行上、下电控制,对wifi模块进行搜索控制,对4g模块进行连网控制。针对不同驱动需求设置有相应的驱动接口,相关技术中,应用程序可通过调用功能模块针对相应驱动需求所设置的驱动接口来实现功能模块的控制,例如,对于连网的驱动需求,可通过调用4g模块针对连网设置的驱动接口,控制4g模块进行联网控制。
该驱动框架相当于某类设备对应的驱动程序的框架,能够为上层应用程序提供统一的操作接口,提高上层代码的可复用性。同时内核维护者可在内核中设计一些管控系统资源的体系,使得内核能够对资源在各个驱动程序之间的使用进行统一协调和分配,从而保证内核的稳定健康运行。具体在搭建驱动框架的过程中,可以将不同厂家的同类硬件驱动程序中相同部分抽取出来实现,再将不同部分留出接口给具体的驱动开发人员实现。
这里系统接口为设置在驱动程序中为用户提供的接口,对于Linux嵌入式系统硬件平台,该系统接口为Sysfs接口,这时Sysfs接口相当于目录或者文件,可根据用户空间和内核交互暴露在应用程序中,可将连接在系统上的设备和总线组织成一个分级的文件,由用户空间存取,向用户空间导出内核的数据结构以及相应属性,能够展示设备驱动模型中各组件的层次关系。系统接口针对内核用于将设备映射到文件系统中,针对应用程序用于读取或操作设备。
S110:针对所述系统接口封装实现不同驱动需求的接口逻辑,并将所述系统接口暴露至应用程序。
可以理解的是,系统接口可供应用程序直接进行操作,具体针对系统接口封装实现不同驱动需求的接口逻辑过程中,可以查询内核针对系统接口所部署不同操作的接口函数,根据操作需求确定系统接口所需调用的接口函数,并在所述接口函数中封装实现不同驱动需求的接口逻辑。
上述操作需求至少包括向系统接口中读数据和向系统接口中写数据,若操作需求为向系统接口中读数据,则确定系统接口需要调用读数据的接口函数,并在读数据的接口函数中封装实现不同驱动需求的接口逻辑,若操作需求为向系统接口中写数据,则确定系统接口需要调用写数据的接口函数,并在写数据的接口函数中封装实现不同驱动需求的接口逻辑。
在实际应用场景中,考虑到驱动需求的多样性,针对每个功能模块根据用户空间和设备的交互需求创建多个系统接口,具体系统接口的数量可根据驱动需求确定,例如,针对wifi模块上下电控制的驱动需求,创建名为wifi_power_on_off的系统接口,查询内核针对wifi_power_on_off的系统接口所部署不同操作的接口函数包括两个,其中一个为xxx-show,另一个为xxx-store,如果用户向系统接口中写数据调用xxx-store接口函数,如果用户向系统接口中读数据调用xxx-show接口函数,在接口函数中封装的接口逻辑可包括:用户向系统接口中写“1”代表给wifi模块执行上电控制,用户向系统接口中写“0”代表给wifi模块执行下电控制。
S120:响应于应用程序对目标驱动接口的调用请求,根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。
针对系统硬件平台的调试驱动或涉及参数的输入输出时,难免需要对驱动程序中的某些变量进行读写或者函数调用,此时会触发应用程序对目标驱动接口的调用请求,考虑到不同调用请求对应有不同的接口函数以及操作需求,具体可根据调用请求传递的命令参数确定目标驱动接口的接口类型,按照接口类型的驱动需求将调用请求对接至针对接口类型创建的系统接口,并执行针对接口类型创建的系统接口中封装的接口逻辑。
在实际应用场景中,对于不同功能模块的上、下电需求,应用程序调用的目标驱动接口为输入输出参数的驱动接口,该驱动接口持上下电和reset功能,此时调用请求传递的命令参数即为在目标驱动接口中写数据。以wifi模块为例,进一步将调用请求对接到预先创建wifi_power_on_off系统接口,针对预先创建wifi_power_on_off的系统接口中写数据,驱动程序调用wifi_power_on_off系统接口的xxx-store接口函数,然后在xxx-store接口函数中调用封装的接口逻辑,即写“1”调用给wifi功能模块上电的时序代码,写“0”调用给wifi功能模块下电的时序代码。同理,对于不同功能模块的模拟数字转换需求,应用程序调用的目标驱动接口为模拟数字转换的驱动接口,此时将调用请求对接到预先创建adc的系统接口,驱动程序调用adc的系统接口xxx-store接口函数,然后再执行adc的系统接口所部署的的接口逻辑。
应说明的是,由于不同功能模块对应有不同驱动接口的接口类型,此时应用程序调用驱动接口实现相应驱动需求的方式有所不同,也就是说,执行系统接口中封装的接口逻辑过程有所不同。
作为一种实施方式,当系统硬件平台中目标驱动接口的接口类型为第一接口时,该第一接口为通用输入输出型的驱动接口,具体执行针对接口类型创建的系统接口中封装的接口逻辑包括:根据针对第一接口创建的系统接口中封装的接口逻辑,生成操作指令,该操作指令为对功能模块执行的逻辑时序;从设备树中获取第一接口的配置信息,并按照操作指令对第一接口的配置信息执行相应驱动需求对应的逻辑时序,该设备树中记录有描述不同驱动接口的配置信息,相当于对硬件描述的文件信息。在实际应用场景中,对于第一接口进行写数据的调用请求,在驱动程序中获取第一接口的设备号,根据设备号从设备树中获取第一接口的配置信息,并根据操作指令对第一接口的配置信息执行写数据的逻辑时序。
作为另一种实施方式,当系统硬件平台中目标驱动接口的接口类型为第二接口时,该第二接口为模拟数字转换型的驱动接口,具体执行针对接口类型创建的系统接口中封装的接口逻辑包括:根据针对第二接口创建的系统接口中封装的接口逻辑,在驱动程序的赋值处调用内核通知链将第二接口对应的数值传递至被内核通知链绑定的接口函数,该内核通知链在驱动程序中创建;利用内核通知链绑定的接口函数对第二接口对应的数值执行相应驱动需求。在实际应用场景中,对于第二接口进行数据获取的调用请求,在驱动程序中创建内核通知链,该内核通知链为用于子系统之间的通信机制,并将内核通知链分别绑定针对系统接口所部属不同操作的接口函数,并在第二接口的赋值处调用内核通知链,将第二接口写入的数值传递至被绑定的接口函数,并利用接口函数可向系统接口写数据。
进一步的,当系统硬件平台中目标驱动接口的设备号发生改变时,考虑到应用程序与驱动接口之间的解耦合,可以根据发生改变目标驱动接口的设备号,更新设备树中描述目标驱动接口的配置信息,并利用更新后目标驱动接口的配置信息执行相应系统接口中封装的接口逻辑。如此,系统硬件平台发生改变后,无需修改应用程序去查询相应硬件原理图,可直接修改设备树的配置信息接口,降低了应用调用过驱动程序的耦合性,极大缩短了应用程序的软件开发时间和开发成本。示例性的,针对4g功能模块需要调用gpio23接口,可在驱动程序中调用目标驱动接口对接的系统接口,该系统接口部署有不同操作的接口函数,调用接口函数可从设备树中获取gpio23接口的配置信息,对于目标驱动接口的设备号改变至gpio25的情况,相应设备树中目标驱动接口的配置信息发生改变,此时调用接口函数从设备树中会获取gpio25接口的配置信息。
本发明实施例提供的应用程序调用驱动接口的方法,能够在驱动程序中搭建驱动框架,并针对驱动框架内每个功能模块创建系统接口,该驱动框架内功能模块对应有执行不同驱动需求的驱动接口,并针对系统接口封装实现不同驱动需求的接口逻辑,并将系统接口暴露至应用程序,进一步响应于应用程序对目标驱动接口的调用请求,根据调用请求传递的命令参数将调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。由此可知,与现有技术中由于应用程序和驱动接口之间的耦合性较强而增加软件开发时间和开发成本相比,本发明实施例通过在驱动程序中创建系统接口以供应用程序进行调用,从而解决了现有技术中由于应用程序和驱动接口之间的耦合性较强而增加软件开发时间和开发成本的问题。
基于上述实施例,本发明的另一实施例提供了一种应用程序调用驱动接口的装置,如图2所示,所述装置包括:
创建单元20,可以用于在驱动程序中搭建驱动框架,并针对所述驱动框架内每个功能模块创建系统接口,所述驱动框架内功能模块对应有执行不同驱动需求的驱动接口;
封装单元22,可以用于针对所述系统接口封装实现不同驱动需求的接口逻辑,并将所述系统接口暴露至应用程序;
执行单元24,可以用于响应于应用程序对目标驱动接口的调用请求,根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。
可选的,所述封装单元22包括:
查询模块,可以用于查询内核针对所述系统接口所部署不同操作的接口函数;
封装模块,可以用于根据操作需求确定系统接口所需调用的接口函数,并在所述接口函数中封装实现不同驱动需求的接口逻辑。
可选的,所述操作需求至少包括向所述系统接口中读数据和向所述系统接口中写数据,所述封装模块,具体可以用于若所述操作需求为向所述系统接口中读数据,则确定系统接口需要调用读数据的接口函数,并在读数据的接口函数中封装实现不同驱动需求的接口逻辑;
所述封装模块,具体还可以用于若所述操作需求为向所述系统接口中写数据,则确定系统接口需要调用写数据的接口函数,并在写数据的接口函数中封装实现不同驱动需求的接口逻辑。
可选的,所述执行单元24包括:
确定模块,可以用于根据所述调用请求传递的命令参数确定所述目标驱动接口的接口类型;
执行模块,可以用于按照所述接口类型的驱动需求将所述调用请求对接至针对所述接口类型创建的系统接口,并执行所述针对所述接口类型创建的系统接口中封装的接口逻辑。
可选的,当系统硬件平台中目标驱动接口的接口类型为第一接口时,所述执行模块,具体可以用于根据所述针对所述第一接口创建的系统接口中封装的接口逻辑,生成操作指令,所述操作指令为对功能模块执行的逻辑时序;
所述执行模块,具体还可以用于从设备树中获取所述第一接口的配置信息,并按照所述操作指令对所述第一接口的配置信息执行相应驱动需求对应的逻辑时序,所述设备树中记录有描述不同驱动接口的配置信息。
可选的,当系统硬件平台中目标驱动接口的接口类型为第二接口时,所述执行模块,具体可以用于根据所述针对所述第二接口创建的系统接口中封装的接口逻辑,在驱动的赋值处调用内核通知链将所述第二接口对应的数值传递至被所述内核通知链绑定的接口函数,所述内核通知链在驱动程序中创建;
所述执行模块,具体还可以用于利用所述内核通知链绑定的接口函数对所述第二接口对应的数值执行相应驱动需求。
可选的,当系统硬件平台中目标驱动接口的设备号发生改变时,所述装置还包括:
更新单元,可以用于根据发生改变目标驱动接口的设备号,更新设备树中描述目标驱动接口的配置信息,并利用更新后目标驱动接口的配置信息执行相应系统接口中封装的接口逻辑。
基于上述方法实施例,本发明的另一实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现上述方法。
基于上述实施例,本发明的另一实施例提供了一种车辆,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。所述车辆可以为非自动驾驶车辆,也可以为自动驾驶车辆。
上述系统、装置实施例与方法实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (10)
1.一种应用程序调用驱动接口的方法,其特征在于,所述方法包括:
在驱动程序中搭建驱动框架,并针对所述驱动框架内每个功能模块创建系统接口,所述驱动框架内功能模块对应有执行不同驱动需求的驱动接口;
针对所述系统接口封装实现不同驱动需求的接口逻辑,并将所述系统接口暴露至应用程序;
响应于应用程序对目标驱动接口的调用请求,根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。
2.如权利要求1所述的方法,其特征在于,所述针对所述系统接口封装实现不同驱动需求的接口逻辑,包括:
查询内核针对所述系统接口所部署不同操作的接口函数;
根据操作需求确定系统接口所需调用的接口函数,并在所述接口函数中封装实现不同驱动需求的接口逻辑。
3.如权利要求2所述的方法,其特征在于,所述操作需求至少包括向所述系统接口中读数据和向所述系统接口中写数据,所述根据操作需求确定系统接口所需调用的接口函数,并在所述接口函数中封装实现不同驱动需求的接口逻辑,具体包括:
若所述操作需求为向所述系统接口中读数据,则确定系统接口需要调用读数据的接口函数,并在读数据的接口函数中封装实现不同驱动需求的接口逻辑;
若所述操作需求为向所述系统接口中写数据,则确定系统接口需要调用写数据的接口函数,并在写数据的接口函数中封装实现不同驱动需求的接口逻辑。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑,包括:
根据所述调用请求传递的命令参数确定所述目标驱动接口的接口类型;
按照所述接口类型的驱动需求将所述调用请求对接至针对所述接口类型创建的系统接口,并执行所述针对所述接口类型创建的系统接口中封装的接口逻辑。
5.如权利要求4所述的方法,其特征在于,当系统硬件平台中目标驱动接口的接口类型为第一接口时,所述执行所述针对所述接口类型创建的系统接口中封装的接口逻辑包括:
根据所述针对所述第一接口创建的系统接口中封装的接口逻辑,生成操作指令,所述操作指令为对功能模块执行的逻辑时序;
从设备树中获取所述第一接口的配置信息,并按照所述操作指令对所述第一接口的配置信息执行相应驱动需求对应的逻辑时序,所述设备树中记录有描述不同驱动接口的配置信息。
6.如权利要求4所述的方法,其特征在于,当系统硬件平台中目标驱动接口的接口类型为第二接口时,所述执行所述针对所述接口类型创建的系统接口中封装的接口逻辑包括:
根据所述针对所述第二接口创建的系统接口中封装的接口逻辑,在驱动的赋值处调用内核通知链将所述第二接口对应的数值传递至被所述内核通知链绑定的接口函数,所述内核通知链在驱动程序中创建;
利用所述内核通知链绑定的接口函数对所述第二接口对应的数值执行相应驱动需求。
7.如权利要求1-3中任一项所述的方法,其特征在于,当系统硬件平台中目标驱动接口的设备号发生改变时,所述方法还包括:
根据发生改变目标驱动接口的设备号,更新设备树中描述目标驱动接口的配置信息,并利用更新后目标驱动接口的配置信息执行相应系统接口中封装的接口逻辑。
8.一种应用程序调用驱动接口的装置,其特征在于,所述装置包括:
创建单元,用于在驱动程序中搭建驱动框架,并针对所述驱动框架内每个功能模块创建系统接口,所述驱动框架内功能模块对应有执行不同驱动需求的驱动接口;
封装单元,用于针对所述系统接口封装实现不同驱动需求的接口逻辑,并将所述系统接口暴露至应用程序;
执行单元,用于响应于应用程序对目标驱动接口的调用请求,根据所述调用请求传递的命令参数将所述调用请求对接至针对目标驱动接口创建的系统接口,并执行相应系统接口中封装的接口逻辑。
9.一种存储介质,其上存储有可执行指令,其特征在于,该指令被处理器执行时使处理器实现如权利要求1-7中任一项所述应用程序调用驱动接口的方法。
10.一种应用程序调用驱动接口的装置,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一项所述应用程序调用驱动接口的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210050145.7A CN114416222A (zh) | 2022-01-17 | 2022-01-17 | 应用程序调用驱动接口的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210050145.7A CN114416222A (zh) | 2022-01-17 | 2022-01-17 | 应用程序调用驱动接口的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416222A true CN114416222A (zh) | 2022-04-29 |
Family
ID=81274198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210050145.7A Pending CN114416222A (zh) | 2022-01-17 | 2022-01-17 | 应用程序调用驱动接口的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416222A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116298825A (zh) * | 2023-05-08 | 2023-06-23 | 杭州长川科技股份有限公司 | 芯片测试系统和方法、设备、驱动访问装置和方法 |
-
2022
- 2022-01-17 CN CN202210050145.7A patent/CN114416222A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116298825A (zh) * | 2023-05-08 | 2023-06-23 | 杭州长川科技股份有限公司 | 芯片测试系统和方法、设备、驱动访问装置和方法 |
CN116298825B (zh) * | 2023-05-08 | 2023-10-20 | 杭州长川科技股份有限公司 | 芯片测试系统和方法、设备、驱动访问装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7388879B2 (en) | Communication device and communication method network system and robot apparatus | |
CN114077462A (zh) | 软件操作系统调用Android HIDL接口的方法、装置、设备及介质 | |
KR100559251B1 (ko) | 개방형 인터넷망 기반의 로봇 개발을 위한 분산소프트웨어 통합서비스방법 | |
KR20050108518A (ko) | 개방형 분산처리구조의 로봇 제어 소프트웨어구조 | |
WO2000042504A1 (fr) | Processeur, procede de communications entre objets, et robot | |
CN109445323B (zh) | 一种基于web的分布式智能测控软件平台设计方法 | |
CN113641413B (zh) | 目标模型加载更新方法及装置、可读介质和电子设备 | |
US20230146364A1 (en) | Process running method and apparatus | |
CN114416222A (zh) | 应用程序调用驱动接口的方法及装置 | |
WO2024140416A1 (zh) | 一种工业控制程序开发平台及方法 | |
CN113886731A (zh) | 一种基于iOS平台路由跳转页面的方法及应用 | |
CN111683005B (zh) | 一种物联网智能网关设备及其构建方法 | |
CN111522623B (zh) | 组件化软件多进程运行系统 | |
CN117519972A (zh) | Gpu资源管理方法及装置 | |
CN115208718B (zh) | 设备侧智能网关及其系统、和嵌入式设备适配控制方法 | |
CN112306539A (zh) | 一种单片机应用层开发方法、系统、终端及介质 | |
CN102141915B (zh) | 一种基于RTLinux的设备实时控制方法 | |
CN116302310A (zh) | 一种容器管理方法、装置、计算机设备及存储介质 | |
CN115617407A (zh) | 一种嵌入式操作系统的硬件驱动方法 | |
CN113238715B (zh) | 智能文件系统、及其配置方法、智能辅助计算设备和介质 | |
CN114860401A (zh) | 异构云桌面调度系统、方法、服务系统、装置及介质 | |
CN112445595B (zh) | 基于slurm计算平台的多任务提交系统 | |
CN112559336B (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
KR20130024857A (ko) | 디바이스 제어용 앱 처리 장치 및 방법 | |
CN117170738B (zh) | Python与Fortran互调用的方法、系统、设备及存储介质 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 601, Building 4, Jingwei Hengrun R&D Center, No. 2, Huixiang Road, Zhangjiawo Town, Xiqing District, Tianjin, 300380 Applicant after: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd. Address before: 300380 Room 308, No. 9, Fengze Road, Xiqing automobile industrial zone (Zhangjiawo Industrial Zone), Xiqing District, Tianjin Applicant before: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd. |