CN111857837A - 用于驱动硬件的方法和装置 - Google Patents
用于驱动硬件的方法和装置 Download PDFInfo
- Publication number
- CN111857837A CN111857837A CN201910361362.6A CN201910361362A CN111857837A CN 111857837 A CN111857837 A CN 111857837A CN 201910361362 A CN201910361362 A CN 201910361362A CN 111857837 A CN111857837 A CN 111857837A
- Authority
- CN
- China
- Prior art keywords
- function
- driver
- drive
- driver module
- name
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000011068 loading method Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 92
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 6
- 230000008878 coupling Effects 0.000 abstract description 3
- 238000010168 coupling process Methods 0.000 abstract description 3
- 238000005859 coupling reaction Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/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)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开的实施例公开了用于驱动硬件的方法和装置。该方法的一具体实施方式包括:获取目标应用待实现的至少一个功能的名称;根据至少一个功能的名称定制至少一个驱动程序模块;在目标应用中加载至少一个驱动程序模块。该实施方式实现了针对不同应用程序的硬件需求加载相应的驱动程序,减少和驱动程序模块之间相互耦合,促进系统稳定性提升。同时有效的简化工程,提高效率,减少重复工作。
Description
技术领域
本公开的实施例涉及计算机技领术域,具体涉及用于驱动硬件的方法和装置。
背景技术
基于Myriad2的AI(Artificial Intelligence,人工智能)芯片有丰富的外设接口,在AI相机中有着广泛应用。
现有技术中使用AI芯片的APP(Application,计算机应用程序)由Movidius最初demo发展而来,有些硬件模块在当前应用中已经不再使用,但APP中仍然保留着相应的驱动代码。APP的系统结构不清晰,出现问题时不方便定位。APP结构臃肿,不同的APP驱动代码有重复。部分APP开启了一些硬件模块并非应用场景所需,不利于系统低功耗设计。APP中不同驱动部分混合在一起,结构不清晰。
发明内容
本公开的实施例提出了用于驱动硬件的方法和装置。
第一方面,本公开的实施例提供了一种用于驱动硬件的方法,包括:获取目标应用待实现的至少一个功能的名称;根据至少一个功能的名称定制至少一个驱动程序模块;在目标应用中加载至少一个驱动程序模块。
在一些实施例中,根据至少一个功能的名称定制至少一个驱动程序模块,包括:获取至少一个功能的名称对应的至少一个驱动程序代码;通过修改编译规则文件将至少一个驱动程序代码编译生成至少一个驱动程序模块。
在一些实施例中,根据至少一个功能的名称定制至少一个驱动程序模块,包括:获取至少一个功能的名称对应的至少一个驱动程序代码;通过修改配置文件将至少一个驱动程序代码编译生成至少一个驱动程序模块。
在一些实施例中,该方法还包括:响应于接收到删除目标功能的请求,卸载目标功能对应的驱动程序模块。
在一些实施例中,该方法还包括:根据功能将驱动程序代码通过规则化的目录结构/文件夹来分类或管理。
在一些实施例中,至少一个功能包括以下至少一项:驱动内嵌式存储器、驱动以太网卡、驱动高清多媒体接口、驱动安全数码卡、驱动传感器、驱动流式图像处理流水、驱动通用串行总线、驱动通用异步收发传输器。
第二方面,本公开的实施例提供了一种用于驱动硬件的装置,包括:获取单元,被配置成获取目标应用待实现的至少一个功能的名称;定制单元,被配置成根据至少一个功能的名称定制至少一个驱动程序模块;加载单元,被配置成在目标应用中加载至少一个驱动程序模块。
在一些实施例中,定制单元进一步被配置成:获取至少一个功能的名称对应的至少一个驱动程序代码;通过修改编译规则文件将至少一个驱动程序代码编译生成至少一个驱动程序模块。
在一些实施例中,定制单元进一步被配置成:获取至少一个功能的名称对应的至少一个驱动程序代码;通过修改配置文件将至少一个驱动程序代码编译生成至少一个驱动程序模块。
在一些实施例中,该装置还包括卸载单元,被配置成:响应于接收到删除目标功能的请求,卸载目标功能对应的驱动程序模块。
在一些实施例中,该装置还包括管理单元,被配置成:根据功能将驱动程序代码通过规则化的目录结构/文件夹来分类或管理。
在一些实施例中,至少一个功能包括以下至少一项:驱动内嵌式存储器、驱动以太网卡、驱动高清多媒体接口、驱动安全数码卡、驱动传感器、驱动流式图像处理流水、驱动通用串行总线、驱动通用异步收发传输器。
第三方面,本公开的实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现如第一方面中任一的方法。
第五方面,本申请实施例提供了另一种服务器,包括:接口;存储器,其上存储有一个或多个程序;以及一个或多个处理器,在操作上连接到上述接口和上述存储器,用于:获取目标应用待实现的至少一个功能的名称;根据至少一个功能的名称定制至少一个驱动程序模块;在目标应用中加载至少一个驱动程序模块。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当上述计算机程序被一个或多个处理器执行时,使得上述一个或多个处理器:获取目标应用待实现的至少一个功能的名称;根据至少一个功能的名称定制至少一个驱动程序模块;在目标应用中加载至少一个驱动程序模块。
本公开的实施例提供的用于驱动硬件的方法和装置,通过目标应用待实现的功能定制相应的驱动程序模块,然后通过加载驱动程序模块,实现驱动程序的模块化设计。能够减少和驱动程序模块之间相互耦合,促进系统稳定性提升。同时有效的简化工程,提高效率,减少重复工作。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的用于驱动硬件的方法的一个实施例的流程图;
图3是根据本公开的用于驱动硬件的方法的一个应用场景的示意图;
图4是根据本公开的用于驱动硬件的方法的又一个实施例的流程图;
图5是根据本公开的用于驱动硬件的装置的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的用于驱动硬件的方法或用于驱动硬件的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括APP管理器101、驱动模块化管理器102、驱动程序代码库103。APP管理器101、驱动模块化管理器102、驱动程序代码库103可位于同一服务器,也可位于不同的服务器。如果位于不同的服务器,则需要网络在APP管理器101、驱动模块化管理器102、驱动程序代码库103之间提供通信链路。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用APP管理器101管理编译好的APP,还可存储APP所需要的项目资源和APP的功能需求。
驱动模块化管理器102可用于编译驱动程序模块和APP。驱动模块化管理器102接收APP管理器101发送的编译请求,编译请求中可包括APP待实现的至少一个功能的名称。然后驱动模块化管理器102根据所需的功能获取相应的驱动程序代码,编译生成驱动程序模块。然后再在编译APP的过程中加载驱动程序模块,使得编译好的APP具有指定的功能。APP通过调用统一的接口即可实现硬件驱动功能。功能包括以下至少一项:驱动Emmc(EmbeddedMulti Media Card,内嵌式存储器)、驱动Ethernet(以太网卡)、驱动Hdmi(HighDefinition Multimedia Interface,高清多媒体接口)、驱动Sdcard(Secure DigitalMemory Card,安全数码卡)、驱动Sensor(传感器)、驱动Sipp(Streaming imageprocessing pipeline,流式图像处理流水)、驱动Usb(通用串行总线)、驱动Uart(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)。
驱动模块化管理器102可以是硬件,也可以是软件。当驱动模块化管理器102为硬件时,可以是具有代码编译功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当驱动模块化管理器102为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
驱动程序代码库103存储了各种驱动程序的源代码。需要说明的是,驱动程序代码库103可以是硬件,也可以是软件。当驱动程序代码库103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开的实施例所提供的用于驱动硬件的方法一般由驱动模块化管理器102执行,相应地,用于驱动硬件的装置一般设置于驱动模块化管理器102中。
应该理解,图1中的APP管理器、驱动模块化管理器、驱动程序代码库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的APP管理器、驱动模块化管理器、驱动程序代码库。
继续参考图2,示出了根据本公开的用于驱动硬件的方法的一个实施例的流程200。该用于驱动硬件的方法,包括以下步骤:
步骤201,获取目标应用待实现的至少一个功能的名称。
在本实施例中,用于驱动硬件的方法的执行主体(例如图1所示的驱动模块化管理器)可以通过有线连接方式或者无线连接方式从APP管理器接收编译请求。编译请求可包括目标应用的相关源代码以及待目标应用待实现的至少一个功能的名称。目标应用为需要调用外设接口的APP。APP管理器中无需要保留驱动代码,而是由驱动模块化管理器从统一管理的驱动程序代码库中获得。相同的功能可以通过不同厂家的硬件设备来实现。可用名称和型号等信息作为功能的名称来加以区分。
在本实施例的一些可选的实现方式中,待实现的功能包括以下至少一项:驱动Emmc(Embedded Multi Media Card,内嵌式存储器)、驱动Ethernet(以太网卡)、驱动Hdmi(High Definition Multimedia Interface,高清多媒体接口)、驱动Sdcard(SecureDigital Memory Card,安全数码卡)、驱动Sensor(传感器)、驱动Sipp(Streaming imageprocessing pipeline,流式图像处理流水)、驱动Usb(通用串行总线)、驱动Uart(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)。
在本实施例的一些可选的实现方式中,驱动模块化管理器可根据功能将驱动程序代码通过规则化的目录结构/文件夹来分类或管理。不同的设备驱动为一个模块,它们的功能是驱动相应的外围设备,通过规则化的目录结构/文件夹来分类或管理,比如Emmc子模块对应的是Emmc的驱动代码和供应用调用的封装接口。
步骤202,根据至少一个功能的名称定制至少一个驱动程序模块。
在本实施例中,可根据至少一个功能的名称分析出需要哪些驱动程序模块,例如,人脸识别功能需要摄像头驱动程序模块和传感器驱动程序模块。然后从驱动程序代码库获取摄像头驱动程序代码和传感器驱动程序代码,将获取的驱动程序代码存储在指定的模块源文件目录中,例如分别存储在摄像头驱动文件夹和传感器驱动文件夹。通过修改目标应用的编译规则文件加入摄像头驱动程序代码和传感器驱动程序代码的路径并指定生成的目标文件,编译生成摄像头驱动程序模块和传感器驱动程序模块。编译规则文件定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。编译规则文件在Linux系统下为makefile。可在编译APP的同时生成至少一个驱动程序模块。每个驱动程序模块可实现一个或多个功能。例如,可将摄像头驱动程序代码和传感器驱动程序代码编译成一个目标文件作为一个驱动模块进行加载。还可将摄像头驱动程序代码和传感器驱动程序代码分别编译成两个目标文件作为两个驱动模块进行加载。
在本实施例的一些可选的实现方式中,还可通过修改配置文件将至少一个驱动程序代码编译生成至少一个驱动程序模块。编译规则文件和配置文件二者任选其一进行修改即可,配置文件的主要内容是相关驱动的选项,指定为yes,则会和应用编译成统一的elf文件,否则,不编译。例如在配置文件中指定加载摄像头驱动和传感器驱动。
可选地,可将多个功能的驱动程序代码编译成一个驱动程序模块,从而通过一个接口可实现多个功能。
步骤203,在目标应用中加载至少一个驱动程序模块。
在本实施例中,本公开和Linux的驱动加载方式不同,Movidus M2平台不如Linux那样灵活,需要根据场景和需求提前加载。比如,我们有不同版本的开发板,有的开发板有Emmc,而有的则没有,按照需求通过在编译规则文件或配置文件中写入加载驱动程序模块的指令进行预加载。传统的Myriad 2的程序框架,是将所有的代码(应用/驱动)放到一起,统一管理,比较乱。模块化管理后,驱动模块只提供封装好的抽象接口供应用调用,构建新的App的时候,直接调用这些接口即可,在App看到的只有少量的驱动接口API。
继续参见图3,图3是根据本实施例的用于驱动硬件的方法的应用场景的一个示意图。在图3的应用场景中,APP管理器向驱动模块化管理器发送目标应用待实现的功能:人脸采集、人脸识别。驱动模块化管理器经分析确定出需要Sensor和Usb的驱动程序模块来实现上述功能。然后驱动模块化管理器从驱动程序代码库获得Sensor和Usb的驱动程序代码,将Sensor和Usb的驱动程序代码存储在指定的模块源文件目录中。修改目标应用的编译规则文件,以加入模块源文件目录和代表生成的驱动程序模块的目标文件名称。并在目标应用的编译规则文件中增加加载至少一个驱动程序模块的指令。编译目标应用时,驱动程序模块和目标应用一起编译,首先生成了Sensor和Usb的驱动程序模块,然后Sensor和Usb的驱动程序模块被加载到目标应用中,使得目标应用能够调用Sensor和Usb的驱动程序模块的接口。
本公开的上述实施例提供的方法通过将驱动程序进行模块化处理,减少各模块之间相互耦合,促进系统稳定性提升。同时有效的简化工程,提高效率,减少重复工作。
进一步参考图4,其示出了用于驱动硬件的方法的又一个实施例的流程400。该用于驱动硬件的方法的流程400,包括以下步骤:
步骤401,获取目标应用待实现的至少一个功能的名称。
步骤402,根据至少一个功能的名称定制至少一个驱动程序模块。
步骤403,在目标应用中加载至少一个驱动程序模块。
步骤401-403与步骤201-203基本相同,因此不再赘述。
步骤404,响应于接收到删除目标功能的请求,卸载目标功能对应的驱动程序模块。
在本实施例中,目标应用加载了待实现的至少一个功能的驱动程序模块后,可通过驱动程序模块接口调用驱动模块,以验证目标应用是否编译成功。如果失败,则可卸载目标功能对应的驱动程序模块。可在编译规则文件加入卸载目标功能对应的驱动程序模块的命令或将配置文件中目标功能对应的驱动程序模块的选项设为no。如果成功,则可向APP管理器发布编译好的目标应用。还可由APP管理器发起删除目标功能的请求,以对目标应用的功能进行裁剪。可一次性全部卸载原来加载的驱动程序模块。也可局部卸载原来加载的驱动程序模块。例如,目标应用加载了摄像头驱动程序模块和传感器驱动程序模块。可根据需求将摄像头驱动程序模块和传感器驱动程序模块一起卸载,也可只卸载二者之一。例如APP针对VIP用户可以实现某些功能,但对于普通用户不提供该功能,则可卸载目标功能对应的驱动程序模块后重新编译新的APP,发布给普通用户。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于驱动硬件的方法的流程400体现了对驱动程序模块进行卸载的步骤。由此,本实施例描述的方案可以引入灵活地加载和卸载驱动程序模块。从而有效的简化工程,提高效率,减少重复工作。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种用于驱动硬件的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于驱动硬件的装置500包括:获取单元501、定制单元502和加载单元503。其中,获取单元501,被配置成获取目标应用待实现的至少一个功能的名称;定制单元502,被配置成根据至少一个功能的名称定制至少一个驱动程序模块;加载单元503,被配置成在目标应用中加载至少一个驱动程序模块。
在本实施例中,用于驱动硬件的装置500的获取单元501、定制单元502和加载单元503的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203。
在本实施例的一些可选的实现方式中,定制单元502进一步被配置成:获取至少一个功能的名称对应的至少一个驱动程序代码;通过修改编译规则文件将至少一个驱动程序代码编译生成至少一个驱动程序模块。
在本实施例的一些可选的实现方式中,定制单元502进一步被配置成:获取至少一个功能的名称对应的至少一个驱动程序代码;通过修改配置文件将至少一个驱动程序代码编译生成至少一个驱动程序模块。
在本实施例的一些可选的实现方式中,装置还包括卸载单元504,被配置成:响应于接收到删除目标功能的请求,卸载目标功能对应的驱动程序模块。
在本实施例的一些可选的实现方式中,装置500还包括管理单元505,被配置成:根据功能将驱动程序代码通过规则化的目录结构/文件夹来分类或管理。
在本实施例的一些可选的实现方式中,至少一个功能包括以下至少一项:驱动内嵌式存储器、驱动以太网卡、驱动高清多媒体接口、驱动安全数码卡、驱动传感器、驱动流式图像处理流水、驱动通用串行总线、驱动通用异步收发传输器。
下面参考图6,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的驱动模块化管理器)600的结构示意图。本公开的实施例中的驱动模块化管理器可以包括但不限于诸如移动电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)、等等的移动终端以及诸如台式计算机等等的固定终端。图6示出的驱动模块化管理器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取目标应用待实现的至少一个功能的名称;根据至少一个功能的名称定制至少一个驱动程序模块;在目标应用中加载至少一个驱动程序模块。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、定制单元和加载单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取目标应用待实现的至少一个功能的名称的单元”。
作为又一方面,本申请实施例提供了另一种服务器,包括:接口;存储器,其上存储有一个或多个程序;以及一个或多个处理器,在操作上连接到上述接口和上述存储器,用于:获取目标应用待实现的至少一个功能的名称;根据至少一个功能的名称定制至少一个驱动程序模块;在目标应用中加载至少一个驱动程序模块。
作为又一方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当上述计算机程序被一个或多个处理器执行时,使得上述一个或多个处理器:获取目标应用待实现的至少一个功能的名称;根据至少一个功能的名称定制至少一个驱动程序模块;在目标应用中加载至少一个驱动程序模块。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种用于驱动硬件的方法,包括:
获取目标应用待实现的至少一个功能的名称;
根据所述至少一个功能的名称定制至少一个驱动程序模块;
在所述目标应用中加载所述至少一个驱动程序模块。
2.根据权利要求1所述的方法,其中,所述根据所述至少一个功能的名称定制至少一个驱动程序模块,包括:
获取所述至少一个功能的名称对应的至少一个驱动程序代码;
通过修改编译规则文件将所述至少一个驱动程序代码编译生成至少一个驱动程序模块。
3.根据权利要求1所述的方法,其中,所述根据所述至少一个功能的名称定制至少一个驱动程序模块,包括:
获取所述至少一个功能的名称对应的至少一个驱动程序代码;
通过修改配置文件将所述至少一个驱动程序代码编译生成至少一个驱动程序模块。
4.根据权利要求1所述的方法,其中,所述方法还包括:
响应于接收到删除目标功能的请求,卸载所述目标功能对应的驱动程序模块。
5.根据权利要求1所述的方法,其中,所述方法还包括:
根据功能将驱动程序代码通过规则化的目录结构/文件夹来分类或管理。
6.根据权利要求1-5之一所述的方法,其中,所述至少一个功能包括以下至少一项:
驱动内嵌式存储器、驱动以太网卡、驱动高清多媒体接口、驱动安全数码卡、驱动传感器、驱动流式图像处理流水、驱动通用串行总线、驱动通用异步收发传输器。
7.一种用于驱动硬件的装置,包括:
获取单元,被配置成获取目标应用待实现的至少一个功能的名称;
定制单元,被配置成根据所述至少一个功能的名称定制至少一个驱动程序模块;
加载单元,被配置成在所述目标应用中加载所述至少一个驱动程序模块。
8.根据权利要求7所述的装置,其中,所述定制单元进一步被配置成:
获取所述至少一个功能的名称对应的至少一个驱动程序代码;
通过修改编译规则文件将所述至少一个驱动程序代码编译生成至少一个驱动程序模块。
9.根据权利要求7所述的装置,其中,所述定制单元进一步被配置成:
获取所述至少一个功能的名称对应的至少一个驱动程序代码;
通过修改配置文件将所述至少一个驱动程序代码编译生成至少一个驱动程序模块。
10.根据权利要求7所述的装置,其中,所述装置还包括卸载单元,被配置成:
响应于接收到删除目标功能的请求,卸载所述目标功能对应的驱动程序模块。
11.根据权利要求7所述的装置,其中,所述装置还包括管理单元,被配置成:
根据功能将驱动程序代码通过规则化的目录结构/文件夹来分类或管理。
12.根据权利要求7-11之一所述的装置,其中,所述至少一个功能包括以下至少一项:
驱动内嵌式存储器、驱动以太网卡、驱动高清多媒体接口、驱动安全数码卡、驱动传感器、驱动流式图像处理流水、驱动通用串行总线、驱动通用异步收发传输器。
13.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361362.6A CN111857837A (zh) | 2019-04-30 | 2019-04-30 | 用于驱动硬件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361362.6A CN111857837A (zh) | 2019-04-30 | 2019-04-30 | 用于驱动硬件的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111857837A true CN111857837A (zh) | 2020-10-30 |
Family
ID=72965584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910361362.6A Withdrawn CN111857837A (zh) | 2019-04-30 | 2019-04-30 | 用于驱动硬件的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857837A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924582A (zh) * | 2010-07-29 | 2010-12-22 | 上海慧翰信息技术有限公司 | 通信装置及其中间件 |
CN103888807A (zh) * | 2012-12-20 | 2014-06-25 | 中山大学深圳研究院 | 一种智能电视的高清解码中间件系统及解码方法 |
CN103942078A (zh) * | 2014-04-30 | 2014-07-23 | 华为技术有限公司 | 一种加载驱动程序的方法及嵌入式设备 |
CN106066789A (zh) * | 2016-05-24 | 2016-11-02 | 乐视控股(北京)有限公司 | 一种对摄像头驱动程序进行编译的方法和装置 |
CN109558121A (zh) * | 2018-11-26 | 2019-04-02 | 上海达梦数据库有限公司 | 接口驱动程序的开发方法、装置、设备及存储介质 |
-
2019
- 2019-04-30 CN CN201910361362.6A patent/CN111857837A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924582A (zh) * | 2010-07-29 | 2010-12-22 | 上海慧翰信息技术有限公司 | 通信装置及其中间件 |
CN103888807A (zh) * | 2012-12-20 | 2014-06-25 | 中山大学深圳研究院 | 一种智能电视的高清解码中间件系统及解码方法 |
CN103942078A (zh) * | 2014-04-30 | 2014-07-23 | 华为技术有限公司 | 一种加载驱动程序的方法及嵌入式设备 |
CN106066789A (zh) * | 2016-05-24 | 2016-11-02 | 乐视控股(北京)有限公司 | 一种对摄像头驱动程序进行编译的方法和装置 |
CN109558121A (zh) * | 2018-11-26 | 2019-04-02 | 上海达梦数据库有限公司 | 接口驱动程序的开发方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554876A (zh) | 用于编译安卓工程的方法和装置 | |
WO2020001112A1 (zh) | 一种支持多类型设备的平台的应用方法、移动终端 | |
CN112817657B (zh) | 一种应用程序启动项加载方法、装置、系统及存储介质 | |
CN111740948A (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN111240766A (zh) | 应用启动方法、装置、电子设备及计算机可读存储介质 | |
CN110221840B (zh) | 应用程序的功能实现方法及装置、设备及存储介质 | |
CN113407165B (zh) | Sdk的生成和自升级方法、装置、可读介质和设备 | |
CN113127000B (zh) | 应用程序组件的编译方法、装置、设备及存储介质 | |
CN111414152B (zh) | 业务逻辑的实现方法、系统、可读介质和电子设备 | |
CN111506904B (zh) | 漏洞在线修复的方法和装置 | |
CN111797270A (zh) | 音频播放方法、装置、电子设备及计算机可读存储介质 | |
CN112965713B (zh) | 可视化编辑器的开发方法、装置、设备及存储介质 | |
CN111857837A (zh) | 用于驱动硬件的方法和装置 | |
CN111324336B (zh) | 实现依赖注入的方法、装置、终端和存储介质 | |
CN111142972B (zh) | 用于扩展应用程序的功能的方法、装置、系统及介质 | |
CN109669679B (zh) | 服务检测及处理方法、装置及电子设备 | |
CN111796802B (zh) | 功能包生成方法、装置和电子设备 | |
CN116991380B (zh) | 一种应用程序的构建方法、装置、电子设备及存储介质 | |
CN109766246B (zh) | 用于监控应用的方法和装置 | |
CN112905167B (zh) | 应用操作方法、装置和电子设备 | |
CN117111904B (zh) | 用于将Web应用自动转换成无服务器函数的方法和系统 | |
CN111767237B (zh) | 模块间通信方法和装置 | |
CN109933334B (zh) | 一种程序执行方法、装置、设备及介质 | |
CN112688863B (zh) | 网关数据处理方法、装置及电子设备 | |
CN111352634A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201030 |