CN113286090A - 摄像头多驱动动态配置方法、加载方法及相关装置 - Google Patents
摄像头多驱动动态配置方法、加载方法及相关装置 Download PDFInfo
- Publication number
- CN113286090A CN113286090A CN202110633311.1A CN202110633311A CN113286090A CN 113286090 A CN113286090 A CN 113286090A CN 202110633311 A CN202110633311 A CN 202110633311A CN 113286090 A CN113286090 A CN 113286090A
- Authority
- CN
- China
- Prior art keywords
- file
- camera
- loaded
- camera driver
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/617—Upgrading or updating of programs or applications for camera control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Studio Devices (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种摄像头多驱动动态配置方法、加载方法及相关装置,该配置方法对于一个工程,其所有摄像头驱动都以编译文件的形式存在于该工程中,工程建立后,用户可以从所有摄像头驱动中配置待加载摄像头驱动,将其配置文件与所有摄像头驱动的编译文件打包到一个镜像、将内核的编译文件打包到一个镜像,从而完成烧写。基于本申请,开发者在调试工程时只需要更改配置文件,而不需要编译烧写整个内核,即可完成后续的加载,耗时明显降低,在驱动开发过程需要频繁修改源码的情况下减小的开销、灵活性强,显著提升效率。
Description
技术领域
本申请涉及Linux驱动开发技术领域,更具体地说,涉及Yocto项目体系下一种能够区分工程的摄像头多驱动动态配置方法、加载方法及相关装置。
背景技术
现有的Linux系统中摄像头加载方法一般是将摄像头驱动编译进内核的,Linux启动时需要连同内核一起加载。
当调试工程的摄像头驱动或者相关硬件设备发生改变时,需要修改整个摄像头驱动及内核配置,并重新编译整个内核以替换工程的内核,灵活性差,开发的效率低下、开销大。
发明内容
有鉴于此,为解决上述问题,本申请提供一种摄像头多驱动动态配置方法、加载方法及相关装置,技术方案如下:
一种摄像头多驱动动态配置方法,所述方法应用于控制镜像生成的第一配方文件,所述方法包括:
对工程配置多个摄像头驱动,每个摄像头驱动以编译文件的方式存在于所述工程中;
获取待加载摄像头驱动的配置文件、以及所述工程被配置的所有摄像头驱动的编译文件,将其打包至第一镜像文件中;以及,获取内核的编译文件,并将其打包至第二镜像文件中;
将所述第一镜像文件和所述第二镜像文件烧写至硬件电路中。
优选的,所述对工程配置多个摄像头驱动,包括:
在内核中的摄像头驱动被剥离的情况下,在所述工程的板级支持包元数据目录下新建第二配方文件和编译控制文件,所述第二配方文件用于配置摄像头驱动的源代码、以及用于表征待加载摄像头驱动的变量,所述编译控制文件用于编译所述第二配方文件中配置的摄像头驱动的源代码以生成相应的编译文件;
在所述第一配方文件中写入所述第二配方文件的名称,并在所述工程的工程配置文件中写入所述变量,所述工程配置文件用于接收对所述变量的赋值。
优选的,获取待加载摄像头驱动的配置文件,包括:
接收所述第二配方文件所返回的待加载摄像头驱动的配置文件,所述待加载摄像头驱动是所述第二配方文件根据所述变量的实际赋值所确定的,所述待加载摄像头驱动的配置文件是所述第二配方文件生成的。
优选的,所述第二配方文件中包含其被配置的摄像头驱动的源代码地址;
所述第二配方文件能够基于源代码地址获取其被配置的摄像头驱动的源代码,并调用所述编译控制文件进行编译。
一种摄像头多驱动动态配置装置,所述装置包括:
驱动配置模块,用于对工程配置多个摄像头驱动,每个摄像头驱动以编译文件的方式存在于所述工程中;
镜像打包模块,用于获取待加载摄像头驱动的配置文件、以及所述工程被配置的所有摄像头驱动的编译文件,将其打包至第一镜像文件中;以及,获取内核的编译文件,并将其打包至第二镜像文件中;
烧写模块,用于将所述第一镜像文件和所述第二镜像文件烧写至硬件电路中。
优选的,所述驱动配置模块,具体用于:
在内核中的摄像头驱动被剥离的情况下,在所述工程的板级支持包元数据目录下新建第二配方文件和编译控制文件,所述第二配方文件用于配置摄像头驱动的源代码、以及用于表征待加载摄像头驱动的变量,所述编译控制文件用于编译所述第二配方文件中配置的摄像头驱动的源代码以生成相应的编译文件;在所述第一配方文件中写入所述第二配方文件的名称,并在所述工程的工程配置文件中写入所述变量,所述工程配置文件用于接收对所述变量的赋值。
一种摄像头多驱动动态加载方法,所述方法应用于操作系统的服务进程,所述方法包括:
在操作系统的内核处于启动状态的情况下,从硬件电路被烧写的第一镜像文件中查询待加载摄像头驱动的配置文件,所述内核被启动是在所述硬件电路上电后通过运行被烧写的第二镜像文件所实现的;
触发所述内核从所述硬件电路被烧写的第一镜像文件中匹配与所述待加载摄像头驱动的配置文件相对应的待加载摄像头驱动的编译文件,以使所述内核加载所述待加载摄像头驱动的编译文件来启动所述待加载摄像头驱动。
优选的,所述方法还包括:
响应对所述待加载摄像头驱动的配置文件的修改操作。
优选的,所述方法还包括:
响应针对所述待加载摄像头驱动的编译文件的替换操作,用于替换的新编译文件是通过修改第二配方文件中所述待加载摄像头驱动的源代码、并使用编译控制文件处理所生成的。
一种摄像头多驱动动态加载装置,所述装置包括:
文件查询模块,用于在操作系统的内核处于启动状态的情况下,从硬件电路被烧写的第一镜像文件中查询待加载摄像头驱动的配置文件,所述内核被启动是在所述硬件电路上电后通过运行被烧写的第二镜像文件所实现的;
驱动启动模块,用于触发所述内核从所述硬件电路被烧写的第一镜像文件中匹配与所述待加载摄像头驱动的配置文件相对应的待加载摄像头驱动的编译文件,以使所述内核加载所述待加载摄像头驱动的编译文件来启动所述待加载摄像头驱动。
本申请提供的摄像头多驱动动态配置方法,对于一个工程,其所有摄像头驱动都以编译文件的形式存在于该工程中,工程建立后,用户可以从所有摄像头驱动中配置待加载摄像头驱动,将其配置文件与所有摄像头驱动的编译文件打包到一个镜像、将内核的编译文件打包到一个镜像,从而完成烧写。基于本申请,开发者在调试工程时只需要更改配置文件,而不需要编译烧写整个内核,即可完成后续的加载,耗时明显降低,在驱动开发过程需要频繁修改源码的情况下减小的开销、灵活性强,显著提升效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的摄像头多驱动动态配置方法的方法流程图;
图2为本申请实施例提供的摄像头多驱动动态配置方法的另一方法流程图;
图3为本申请实施例提供的摄像头多驱动动态配置装置的结构示意图;
图4为本申请实施例提供的摄像头多驱动动态加载方法的方法流程图;
图5为本申请实施例提供的摄像头多驱动动态加载装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
为方便本领域技术人员了解本申请,以下对本申请的技术背景进行说明:
Yocto是一个开源的协作软件,提供模板、工具和方法帮助开发者创建定制的Linux系统和嵌入式产品,而无需关心硬件体系。
操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。
本申请中工程指的是开发项目,如嵌入式开发项目,软件系统基于Linux,每个项目会对应一版硬件,摄像头是硬件上的一个外设,所有外设都需要进行驱动的开发,不同的项目搭配的外设不同,即使是在同一项目开发过程中硬件设计也可能变更,外设可能会更改,所以摄像头可能会更换不同的型号,每个型号都要开发自己独立的驱动。而内核是驱动所依托的载体,必须有内核运行起来驱动才能工作,没有内核或没有驱动,摄像头都不能工作。以上即为工程、内核、摄像头与驱动的关系。
对于Linux嵌入式开发,软件代码是要烧写到硬件中执行才能让硬件工作的,而内核和驱动是由C语言编写,是一种高级计算机语言在硬件上无法直接运行的,就需要经过编译这个过程转化为硬件可以识别运行的机器语言并打包成一个镜像文件,烧写就是要把这个镜像文件放到硬件的硬盘中的过程。本申请中的烧写包括了内核和所有外设驱动的镜像文件。
本申请实施例提供一种能够区分工程的摄像头多驱动动态配置方法,该方法应用于控制镜像生成的第一配方文件,该方法包括如下步骤,方法流程图如图1所示:
S101,对工程配置多个摄像头驱动,每个摄像头驱动以编译文件的方式存在于工程中。
本申请实施例中,控制镜像生成的第一配方文件,可以是image.bb文件,其
具体实现过程中,步骤S101可以采用如下步骤,方法流程图如图2所示:
S1011,在内核中的摄像头驱动被剥离的情况下,在工程的板级支持包元数据目录下新建第二配方文件和编译控制文件,第二配方文件用于配置摄像头驱动的源代码、以及用于表征待加载摄像头驱动的变量,编译控制文件用于编译第二配方文件中配置的摄像头驱动的源代码以生成相应的编译文件。
本申请实施例中,用户通过检查内核的配置文件可以确定内核中是否存在摄像头驱动,如果存在,则将其与内核进行剥离。即在内核的内核配置文件(即defconfig文件)中将其中所有摄像头驱动的配置宏注释掉,以使内核不去编译这些摄像头驱动。这就可以实现内核与摄像头驱动的相互独立,本申请中每次更改摄像头驱动的配置,就无需修改内核配置了。
需要说明的是,“配置宏注释”是剥离的实现方式,这个方式是Linux开发中通用的方式,任何外设的驱动只要配置宏没有配置在defconfig文件中该驱动就不会被内核编译加载。而“配置宏”则是指一段宏代码。
还需要说明的是,defconfig文件是Linux系统中内核配置文件,通过其中配置的内容来告知编译系统是否编译选择的内核文件。
此外,本申请实施例中,板级支持包元数据目录即meta-bsp目录,其是Yocto下的一个层目录,该目录下包含了板级升级包的元数据,通俗来讲,该目录下放了与硬件电路和外设器件相关的软件代码。
在meta-bsp目录下新建一个关于摄像头的第二配方文件(也属于bb文件,即区别于image.bb文件的新bb文件)和编译控制文件(即make文件)。新bb文件中用于配置工程下所有摄像头驱动的源代码,make文件则能够编译工程下所有摄像头驱动的源代码并生成各自的编译文件(即ko文件)。
此外,为实现用户动态配置待加载摄像头驱动,本申请实施例中,新bb文件还引入一个变量,该变量没有写入具体摄像头驱动的标识(比如名称),但其能够被赋值为任何摄像头驱动的标识。具体的,新bb文件中会写入代码:KERNEL_MODULE_AUTOLOAD="${value}"。
在其他一些实施例中,由于摄像头驱动的源代码极有可能存在于服务器中,因此对新bb文件配置工程下所有摄像头驱动的源代码时,可以仅配置源代码地址,新bb文件能够基于工程下每个摄像头驱动对应的源代码地址获取其相应的源代码。
此外,make文件还可以嵌套至新bb文件中,在新bb文件获得工程下所有摄像头驱动的源代码,调用make文件依次对各个摄像头驱动的源代码进行编译得到相应的编译文件。
当然,在实际应用时,新bb还可以在每获得工程下一个摄像头驱动的源代码后,就可以调用一次make文件对所获得的摄像头驱动的源代码进行编译得到其编译文件。这就可以减少编译的时间,提高配置效率。
需要说明的是,bb文件是Yocto的配方文件,描述了从哪获取软件源码,如何配置,如何编译。ko文件是一个Linux内核模块文件,是一个动态链接的文件,用于加载内核模块。
S1012,在第一配方文件中写入第二配方文件的名称,并在工程的工程配置文件中写入变量,工程配置文件用于接收对变量的赋值。
本申请实施例中,为实现本申请的动态配置摄像头驱动,需要在第一配方文件中写入第二配方文件的名称,具体的,假设新bb文件的名称为camera-module.bb,则需要在image.bb文件中添加一句代码:IMAGE_INSTALL_append="camera-module"。
假设工程的工程配置文件名称为project.conf,在其中写入变量时需要在该文件中添加代码:value=“”。
在用于配置待加载摄像头驱动时,即为对变量value进行赋值,假设对其赋值为A,即value=“A”,则表示工程用到的摄像头驱动,即待加载摄像头驱动的标识为A,就需要加载A摄像头驱动到工程。此时,新bb文件通过检测工程配置文件中value的实际赋值A,即可确定待加载摄像头驱动是A摄像头驱动。
S102,获取待加载摄像头驱动的配置文件、以及工程被配置的所有摄像头驱动的编译文件,将其打包至第一镜像文件中;以及,获取内核的编译文件,并将其打包至第二镜像文件中。
本申请实施例中,用户指定待加载摄像头驱动后,image.bb文件获得该待加载摄像头驱动的配置文件,该配置文件的包含待加载摄像头驱动的标识。
继续以对变量value赋值为A进行说明:新bb文件确定待加载摄像头驱动是A摄像头驱动后,生成A摄像头驱动的配置文件,该配置文件中包含A摄像头驱动的标识。具体的,在meta-bsp目录下,新bb文件在文件系统中/etc/modules-load.d/下生成A摄像头驱动的配置文件。
image.bb文件接收到新bb文件生成的A摄像头驱动的配置文件后,将A摄像头驱动的配置文件以及工程下所有摄像头驱动的编译文件打包至镜像,形成第一镜像文件,同时,image.bb文件从meta-bsp目录下获得内核的编译文件打包至另一镜像,形成第二镜像文件。
S103,将第一镜像文件和第二镜像文件烧写至硬件电路中。
本申请实施例提供的摄像头多驱动动态配置方法,开发者在调试工程时只需要更改配置文件,而不需要编译烧写整个内核,即可完成后续的加载,耗时明显降低,在驱动开发过程需要频繁修改源码的情况下减小的开销、灵活性强,显著提升效率。
基于上述实施例提供的摄像头多驱动动态配置方法,本申请实施例则对应提供执行上述摄像头多驱动动态配置方法的装置,该摄像头多驱动动态配置装置的结构示意图如图3所示,包括:
驱动配置模块101,用于对工程配置多个摄像头驱动,每个摄像头驱动以编译文件的方式存在于工程中;
镜像打包模块102,用于获取待加载摄像头驱动的配置文件、以及工程被配置的所有摄像头驱动的编译文件,将其打包至第一镜像文件中;以及,获取内核的编译文件,并将其打包至第二镜像文件中;
烧写模块103,用于将第一镜像文件和第二镜像文件烧写至硬件电路中。
可选的,驱动配置模块101,具体用于:
在内核中的摄像头驱动被剥离的情况下,在工程的板级支持包元数据目录下新建第二配方文件和编译控制文件,第二配方文件用于配置摄像头驱动的源代码、以及用于表征待加载摄像头驱动的变量,编译控制文件用于编译第二配方文件中配置的摄像头驱动的源代码以生成相应的编译文件;在第一配方文件中写入第二配方文件的名称,并在工程的工程配置文件中写入变量,工程配置文件用于接收对变量的赋值。
可选的,用于获取待加载摄像头驱动的配置文件的镜像打包模块102,具体用于:
接收第二配方文件所返回的待加载摄像头驱动的配置文件,待加载摄像头驱动是第二配方文件根据变量的实际赋值所确定的,待加载摄像头驱动的配置文件是第二配方文件生成的。
可选的,第二配方文件中包含其被配置的摄像头驱动的源代码地址;
第二配方文件能够基于源代码地址获取其被配置的摄像头驱动的源代码,并调用编译控制文件进行编译。
本申请实施例提供的摄像头多驱动动态配置装置,开发者在调试工程时只需要更改配置文件,而不需要编译烧写整个内核,即可完成后续的加载,耗时明显降低,在驱动开发过程需要频繁修改源码的情况下减小的开销、灵活性强,显著提升效率。
基于上述实施例提供的区分工程的摄像头多驱动动态配置方法及配置装置,本申请实施例还提供一种区分工程的摄像头多驱动动态加载方法,该方法应用于操作系统的服务进程,包括如下步骤,方法流程图如图4所示:
S201,在操作系统的内核处于启动状态的情况下,从硬件电路被烧写的第一镜像文件中查询待加载摄像头驱动的配置文件,内核被启动是在硬件电路上电后通过运行被烧写的第二镜像文件所实现的。
本申请实施例中,服务进程名为systemd,其是操作系统内核启动后启动的一个用户空间的系统服务进程。systemd是一个系统管理守护进程、工具和库的集合,功能是用于集中管理和配置系统。
硬件电路上电后其文件系统中除第一镜像文件和第二镜像文件以外的其他镜像文件将第二镜像文件加载至硬件电路的内存中,以引导内核启动。内核启动后,则引导systemd启动,而后systemd查询配置文件并使内核完成加载动作。
S202,触发内核从硬件电路被烧写的第一镜像文件中匹配与待加载摄像头驱动的配置文件相对应的待加载摄像头驱动的编译文件,以使内核加载待加载摄像头驱动的编译文件来启动待加载摄像头驱动。
本申请实施例中,systemd通过查询待加载摄像头驱动的配置文件确定待加载摄像头驱动是A摄像头驱动,进而获得A摄像头驱动的编译文件,从而由内核加载A摄像头驱动的编译文件,以启动A摄像头驱动。
此外,在其他一些实施例中,操作系统运行时,用户还可以手动修改待加载摄像头驱动的配置文件,systemd响应对待加载摄像头驱动的配置文件的修改操作,在操作系统重启后能够重新加载新的摄像头驱动。
另外,在其他一些实施例中,用户还可以替换待加载摄像头驱动的编译文件,即用一个新编译文件替换到待加载摄像头驱动已有的编译文件。具体的,用户可以对第二配方文件中待加载摄像头驱动的源代码做修改,进而利用编译控制文件对修改后的源代码进行编译,从而生成新编译文件。这就可以实现快速修改编译摄像头驱动并替换,避免重新编译烧写整个内核镜像,节省开发时间。
本申请实施例提供的摄像头多驱动动态加载方法,能够在配置完成后启动内核加载用户所配置的摄像头驱动,实现短时间内的快速加载。
基于上述实施例提供的区分工程的摄像头多驱动动态加载方法,本申请实施例则对应提供执行上述区分工程的摄像头多驱动动态加载方法的装置,该装置的结构示意图如图5所示,包括:
文件查询模块201,用于在操作系统的内核处于启动状态的情况下,从硬件电路被烧写的第一镜像文件中查询待加载摄像头驱动的配置文件,内核被启动是在硬件电路上电后通过运行被烧写的第二镜像文件所实现的;
驱动启动模块202,用于触发内核从硬件电路被烧写的第一镜像文件中匹配与待加载摄像头驱动的配置文件相对应的待加载摄像头驱动的编译文件,以使内核加载待加载摄像头驱动的编译文件来启动待加载摄像头驱动。
可选的,驱动启动模块202,还用于:
响应对待加载摄像头驱动的配置文件的修改操作。
可选的,驱动启动模块202,还用于:
响应针对待加载摄像头驱动的编译文件的替换操作,用于替换的新编译文件是通过修改第二配方文件中待加载摄像头驱动的源代码、并使用编译控制文件处理所生成的。
本申请实施例提供的摄像头多驱动动态加载装置,能够在配置完成后启动内核加载用户所配置的摄像头驱动,实现短时间内的快速加载。
综上所述,本申请基于现有的Linux驱动可模块化加载的方式,进行摄像头多驱动的模块化并与工程编译联动,不同的工程可以适配不同的驱动,如需变更或调试驱动只需改变配置文件或编译替换ko文件,因此提高了开发效率、降低了开销,更加灵活。
以上对本申请所提供的一种摄像头多驱动动态配置方法、加载方法及相关装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种摄像头多驱动动态配置方法,其特征在于,所述方法应用于控制镜像生成的第一配方文件,所述方法包括:
对工程配置多个摄像头驱动,每个摄像头驱动以编译文件的方式存在于所述工程中;
获取待加载摄像头驱动的配置文件、以及所述工程被配置的所有摄像头驱动的编译文件,将其打包至第一镜像文件中;以及,获取内核的编译文件,并将其打包至第二镜像文件中;
将所述第一镜像文件和所述第二镜像文件烧写至硬件电路中。
2.根据权利要求1所述的方法,其特征在于,所述对工程配置多个摄像头驱动,包括:
在内核中的摄像头驱动被剥离的情况下,在所述工程的板级支持包元数据目录下新建第二配方文件和编译控制文件,所述第二配方文件用于配置摄像头驱动的源代码、以及用于表征待加载摄像头驱动的变量,所述编译控制文件用于编译所述第二配方文件中配置的摄像头驱动的源代码以生成相应的编译文件;
在所述第一配方文件中写入所述第二配方文件的名称,并在所述工程的工程配置文件中写入所述变量,所述工程配置文件用于接收对所述变量的赋值。
3.根据权利要求2所述的方法,其特征在于,获取待加载摄像头驱动的配置文件,包括:
接收所述第二配方文件所返回的待加载摄像头驱动的配置文件,所述待加载摄像头驱动是所述第二配方文件根据所述变量的实际赋值所确定的,所述待加载摄像头驱动的配置文件是所述第二配方文件生成的。
4.根据权利要求2所述的方法,其特征在于,所述第二配方文件中包含其被配置的摄像头驱动的源代码地址;
所述第二配方文件能够基于源代码地址获取其被配置的摄像头驱动的源代码,并调用所述编译控制文件进行编译。
5.一种摄像头多驱动动态配置装置,其特征在于,所述装置包括:
驱动配置模块,用于对工程配置多个摄像头驱动,每个摄像头驱动以编译文件的方式存在于所述工程中;
镜像打包模块,用于获取待加载摄像头驱动的配置文件、以及所述工程被配置的所有摄像头驱动的编译文件,将其打包至第一镜像文件中;以及,获取内核的编译文件,并将其打包至第二镜像文件中;
烧写模块,用于将所述第一镜像文件和所述第二镜像文件烧写至硬件电路中。
6.根据权利要求5所述的装置,其特征在于,所述驱动配置模块,具体用于:
在内核中的摄像头驱动被剥离的情况下,在所述工程的板级支持包元数据目录下新建第二配方文件和编译控制文件,所述第二配方文件用于配置摄像头驱动的源代码、以及用于表征待加载摄像头驱动的变量,所述编译控制文件用于编译所述第二配方文件中配置的摄像头驱动的源代码以生成相应的编译文件;在所述第一配方文件中写入所述第二配方文件的名称,并在所述工程的工程配置文件中写入所述变量,所述工程配置文件用于接收对所述变量的赋值。
7.一种摄像头多驱动动态加载方法,其特征在于,所述方法应用于操作系统的服务进程,所述方法包括:
在操作系统的内核处于启动状态的情况下,从硬件电路被烧写的第一镜像文件中查询待加载摄像头驱动的配置文件,所述内核被启动是在所述硬件电路上电后通过运行被烧写的第二镜像文件所实现的;
触发所述内核从所述硬件电路被烧写的第一镜像文件中匹配与所述待加载摄像头驱动的配置文件相对应的待加载摄像头驱动的编译文件,以使所述内核加载所述待加载摄像头驱动的编译文件来启动所述待加载摄像头驱动。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应对所述待加载摄像头驱动的配置文件的修改操作。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应针对所述待加载摄像头驱动的编译文件的替换操作,用于替换的新编译文件是通过修改第二配方文件中所述待加载摄像头驱动的源代码、并使用编译控制文件处理所生成的。
10.一种摄像头多驱动动态加载装置,其特征在于,所述装置包括:
文件查询模块,用于在操作系统的内核处于启动状态的情况下,从硬件电路被烧写的第一镜像文件中查询待加载摄像头驱动的配置文件,所述内核被启动是在所述硬件电路上电后通过运行被烧写的第二镜像文件所实现的;
驱动启动模块,用于触发所述内核从所述硬件电路被烧写的第一镜像文件中匹配与所述待加载摄像头驱动的配置文件相对应的待加载摄像头驱动的编译文件,以使所述内核加载所述待加载摄像头驱动的编译文件来启动所述待加载摄像头驱动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110633311.1A CN113286090B (zh) | 2021-06-07 | 2021-06-07 | 摄像头多驱动动态配置方法、加载方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110633311.1A CN113286090B (zh) | 2021-06-07 | 2021-06-07 | 摄像头多驱动动态配置方法、加载方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113286090A true CN113286090A (zh) | 2021-08-20 |
CN113286090B CN113286090B (zh) | 2023-07-18 |
Family
ID=77283607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110633311.1A Active CN113286090B (zh) | 2021-06-07 | 2021-06-07 | 摄像头多驱动动态配置方法、加载方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113286090B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130226555A1 (en) * | 2012-02-23 | 2013-08-29 | Microsoft Corporation | Multilingual Build Integration for Compiled Applications |
CN104346150A (zh) * | 2013-07-30 | 2015-02-11 | 华为技术有限公司 | 多实例业务的可执行文件的生成方法和装置 |
CN104484207A (zh) * | 2014-12-23 | 2015-04-01 | 上海斐讯数据通信技术有限公司 | 交换机的镜像升级方法及适用的linux操作系统和交换机 |
CN106066789A (zh) * | 2016-05-24 | 2016-11-02 | 乐视控股(北京)有限公司 | 一种对摄像头驱动程序进行编译的方法和装置 |
CN109062617A (zh) * | 2018-06-26 | 2018-12-21 | 百富计算机技术(深圳)有限公司 | 一种支持多类型设备的平台的应用方法、移动终端 |
-
2021
- 2021-06-07 CN CN202110633311.1A patent/CN113286090B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130226555A1 (en) * | 2012-02-23 | 2013-08-29 | Microsoft Corporation | Multilingual Build Integration for Compiled Applications |
CN104346150A (zh) * | 2013-07-30 | 2015-02-11 | 华为技术有限公司 | 多实例业务的可执行文件的生成方法和装置 |
CN104484207A (zh) * | 2014-12-23 | 2015-04-01 | 上海斐讯数据通信技术有限公司 | 交换机的镜像升级方法及适用的linux操作系统和交换机 |
CN106066789A (zh) * | 2016-05-24 | 2016-11-02 | 乐视控股(北京)有限公司 | 一种对摄像头驱动程序进行编译的方法和装置 |
CN109062617A (zh) * | 2018-06-26 | 2018-12-21 | 百富计算机技术(深圳)有限公司 | 一种支持多类型设备的平台的应用方法、移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113286090B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7844945B2 (en) | Software and firmware adaptation for unanticipated/changing hardware environments | |
US5561800A (en) | Method and apparatus for incrementally linking modified routines into software | |
JP6198939B2 (ja) | ドライバをロードする方法及び組み込みデバイス | |
CN101876940B (zh) | 一种自动化测试方法和装置 | |
JP4828271B2 (ja) | 複数osバージョン用ソフトウェア生成装置及び複数osバージョン用ソフトウェア生成支援プログラム | |
US8484631B2 (en) | Supporting hardware configuration changes in a UEFI firmware component | |
US6523101B1 (en) | Installed-software development assistance system | |
JP2008509483A5 (zh) | ||
CN101040259A (zh) | 运行期动态链接 | |
JP2006092544A (ja) | プリオペレーティングシステム環境におけるモジュールの動的リンク | |
CN114217787A (zh) | 组件化应用程序的开发方法、装置及存储介质 | |
EP4036716B1 (en) | Method and device for acquiring mirror image file | |
WO2017151588A2 (en) | A system and method for programming data transfer within a microcontroller | |
CN111008106B (zh) | 一种服务器监控管理方法、装置及电子设备和存储介质 | |
CN112306539A (zh) | 一种单片机应用层开发方法、系统、终端及介质 | |
CN113286090A (zh) | 摄像头多驱动动态配置方法、加载方法及相关装置 | |
CN112685095A (zh) | 一种虚拟设备的加载方法、装置、设备及存储介质 | |
CN114860268A (zh) | 操作系统安装方法、装置、电子设备及可读存储介质 | |
CN111596906A (zh) | 一种基于MVPVM的Android应用开发方法、装置、设备及介质 | |
JP2006012158A (ja) | デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置 | |
CN114564230B (zh) | 鸿蒙系统的一键上传实现方法、装置、电子设备及介质 | |
TWI834472B (zh) | 驅動內核模組封裝方法、電子設備與存儲介質 | |
US8493600B2 (en) | Multi-layered printer driver model | |
JP4998861B2 (ja) | コンピュータシステム及びそのhw抽象化方法 | |
CN118585197A (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 | ||
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: Room 308, No.9 Fengze Road, automobile industrial zone, Xiqing District, Tianjin (Zhangjiawo Industrial Zone), 300380 Applicant before: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |