CN106066789A - 一种对摄像头驱动程序进行编译的方法和装置 - Google Patents
一种对摄像头驱动程序进行编译的方法和装置 Download PDFInfo
- Publication number
- CN106066789A CN106066789A CN201610350323.2A CN201610350323A CN106066789A CN 106066789 A CN106066789 A CN 106066789A CN 201610350323 A CN201610350323 A CN 201610350323A CN 106066789 A CN106066789 A CN 106066789A
- Authority
- CN
- China
- Prior art keywords
- driver program
- photographic head
- webcam driver
- source code
- compiled
- 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
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
-
- 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
Abstract
本发明实施例公开了一种对摄像头驱动程序进行编译的方法和装置,属于计算机和图像处理技术领域。该方法包括:获取摄像头驱动程序源代码;将所述摄像头驱动程序源代码导入编译器;获取当前摄像头的项目名;将所述摄像头驱动程序源代码中的头文件名修改为获取的项目名;对修改后的摄像头驱动程序源代码进行实例创建,以得到与所述项目名对应的实例。在对摄像头驱动程序的源代码编译的过程中,根据摄像头的项目名动态的修改源代码中的头文件名,因此只会生成与项目名相对应的实例,而不会生成与项目名无关的实例,从而大大减少了摄像头在动态库中实例,节约了存储空间。
Description
技术领域
本发明实施例涉及计算机和图像处理技术领域,尤其涉及一种对摄像头驱动程序进行编译的方法和装置。
背景技术
由于生产厂家和型号批次的多样化,市场上的摄像头有不同的品牌,同一品牌的摄像头有不同的型号,同一型号的摄像头有不同的批次号。在移动设备预装摄像头之前,由于不能提前预测该移动设备会安装哪个品牌哪个型号哪个批次的摄像头,因此,为了防止出现驱动不匹配导致的摄像头调用失败问题,在编译摄像头的驱动代码时,将驱动代码中所包含的所有品牌所有型号所有批次的代码块全部编译一遍,使得每个批次号的源程序编译生成一个实例。
在实现本发明的过程中,发明人发现至少存在如下问题:在实际调用过程中,大量实例根本就不会调用到。这样,造成手机的动态库中存储了过多的不需要的实例,浪费了存储空间。
发明内容
本发明实施例提供一种对摄像头驱动程序进行编译的方法和装置,在对摄像头驱动程序的编译过程中动态的修改头文件,使得编译后仅生成需要用到的实例,从而节约了存储空间。
根据本发明实施例的一个方面,提供了一种对摄像头驱动程序进行编译的方法,包括:
获取摄像头驱动程序源代码;
将所述摄像头驱动程序源代码导入编译器;
获取当前摄像头的项目名;
将所述摄像头驱动程序源代码中的头文件名修改为获取的项目名;
对修改后的摄像头驱动程序源代码进行实例创建,以得到与所述项目名对应的实例。
进一步,所述摄像头驱动程序源代码,可包括多个头文件名和共用代码块。
进一步,所述每个头文件名可对应某个品牌的摄像头的某个型号的某个批次号。
进一步,所述当前摄像头的项目名可为当前摄像头的型号和批次号。
进一步,所述获取当前摄像头的项目名,可包括:从当前摄像头的配置目录文件中获取当前摄像头的项目名。
根据本发明实施例的另一个方面,提供了一种对摄像头驱动程序进行编译的装置,包括:
第一获取模块,用于获取摄像头驱动程序源代码;
导入模块,用于将所述摄像头驱动程序源代码导入编译器;
第二获取模块,用于获取当前摄像头的项目名;
代码动态修改模块,用于将所述摄像头驱动程序源代码中的头文件名修改为获取的项目名;
实例创建模块,用于对修改后的摄像头驱动程序源代码进行实例创建,以得到与所述项目名对应的实例。
进一步,所述摄像头驱动程序源代码,可包括多个头文件名和共用代码块。
进一步,所述每个头文件名可对应某个品牌的摄像头的某个型号的某个批次号。
进一步,所述当前摄像头的项目名可以为当前摄像头的型号和批次号。
进一步,所述第二获取模块,从当前摄像头的配置目录文件中获取当前摄像头的项目名。
本发明实施例提供的对摄像头驱动程序进行编译的方法和装置,在对摄像头驱动程序的源代码编译的过程中,根据当前摄像头的项目名(productname)动态的修改驱动程序源代码中的头文件名,因此只会生成与当前摄像头的项目名(productname)相对应的实例,而不会生成与productname无关的实例,从而大大减少了当前摄像头在动态库中实例,节约了存储空间。当调用该当前摄像头时,可以从动态库中直接找到对应的实例,从而完成对当前摄像头的驱动。
附图说明
图1是本发明实施例提供的一种对摄像头驱动程序进行编译的方法的流程图;
图2是本发明实施例提供的一种对摄像头驱动程序进行编译的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
图1是本发明实施例提供的一种对摄像头驱动程序进行编译的方法的流程图。
如图1所示,该方法包括:
S1,获取摄像头驱动程序源代码。
存储模块中存储有摄像头驱动程序源代码,从存储模块中获取摄像头驱动程序源代码。摄像头驱动程序源代码可为现有技术中的驱动摄像头的驱动程序中的源代码,包括多个头文件和共用代码块。所述每个头文件名可对应某个品牌的摄像头的某个型号的某个批次号。现有技术在编译时,直接对该源代码进行编译,生成与每个头文件相对应的一个实例。并将该实例存储于动态库中,当应用程序调用摄像头时,在动态库中找到与当前摄像头的品牌、型号、批次号相一致的实例,从而完成对摄像头的驱动。
S2,将所述摄像头驱动程序源代码导入编译器。
S3,获取当前摄像头的项目名(productname)。
所述当前摄像头指的是安装在移动设备中的摄像头。当前摄像头的项目名为当前摄像头的型号和批次号。
安装摄像头时一般会编写相应的配置目录。所述配置目录中包括当前摄像头的项目名。
S4,将所述摄像头驱动程序源代码中的头文件名修改为获取的项目名。
现有技术中,只有在程序运行时能够从底层获取硬件配置参数,程序在编译时不能从底层获取硬件配置参数。
因此,现有技术中,驱动程序源代码在编时不能从底层获取硬件配置参数,使得需要对所有的头文件的代码进行编译,编译完成后会生成多个实例,每个实例对应与驱动程序源代码中的某个头文件。
本发明实施例中,在驱动程序源代码在导入编译器后,并不从底层获取硬件配置参数,而是调取预先编写好的配置目录,从配置目录中读取到当前摄像头的项目名,并将摄像头驱动程序源代码中的头文件名修改成获取的当前摄像头的项目名。从而实现了在编译的过程中动态的修改驱动程序源代码。
S5,对修改后的摄像头驱动程序源代码进行实例创建,以得到与所述项目名对应的实例。
现有技术中,对驱动程序源代码进行编译后,会生成与每个头文件相对应的多个实例,本发明实施例中,由于头文件已经修改为获取的当前摄像头的项目名,即只有一个头文件,因此只会生成与当前摄像头的项目名相对应的一个实例,并将该实例存储于动态库中,从而大大减少了实例生成的数量,节约了存储空间。
本发明实施例的技术方案,在对摄像头驱动程序的源代码编译的过程中,根据当前摄像头的项目名(productname)动态的修改驱动程序源代码中的头文件名,因此只会生成与当前摄像头的项目名(productname)相对应的实例,而不会生成与productname无关的实例,从而大大减少了当前摄像头在动态库中实例,节约了存储空间。当调用该当前摄像头时,可以从动态库中直接找到对应的实例,从而完成对当前摄像头的驱动。
图2是本发明对摄像头驱动程序进行编译的装置的模块关系示意图。
如图2所示,对摄像头驱动程序进行编译的装置包括第一获取模块100、导入模块200、第二获取模块300、代码动态修改模块400、编译器500、实例创建模块600。其中第一获取模100的输出连接导入模块200的输入,导入模块200的输出连接编译器500,第二获取模块300的输出连接代码动态修改模块400,代码动态修改模块400的输出连接编译器500,编译器500包括实例创建模块600。
第一获取模块100,用于获取摄像头驱动程序源代码,并将摄像头驱动程序源代码发送给导入模块200。存储模块中存储有摄像头驱动程序源代码,从存储模块中获取摄像头驱动程序源代码。摄像头驱动程序源代码采用现有技术中摄像头的驱动程序的源代码,该源代码包括多个头文件名和共用代码块。所述每个头文件名对应某个品牌的摄像头的某个型号的某个批次号。现有技术在编译时,直接对该源代码进行编译,生成与每个头文件相对应的一个实例。并将该实例存储于动态库中,当应用程序调用摄像头时,在动态库中找到与当前摄像头的品牌、型号、批次号相一致的实例,从而完成对摄像头的驱动。
导入模块200,用于将所述摄像头驱动程序源代码导入编译器。
第二获取模块300,用于获取当前摄像头的项目名。所述当前摄像头指的是安装在移动设备中的摄像头。当前摄像头的项目名为当前摄像头的型号和批次号。安装摄像头时一般会编写相应的配置目录。所述配置目录中包括当前摄像头的项目名。
代码动态修改模块400,用于将所述摄像头驱动程序源代码中的头文件名修改为获取的项目名。现有技术中,只有在程序运行时能够从底层获取硬件配置参数,程序在编译时不能从底层获取硬件配置参数。
因此,现有技术中,驱动程序源代码在编时不能从底层获取硬件配置参数,使得需要对所有的头文件的代码进行编译,编译完成后会生成多个实例,每个实例对应与驱动程序源代码中的某个头文件。
本发明实施例中,在驱动程序源代码在导入编译器后,并不从底层获取硬件配置参数,而是调取预先编写好的配置目录,从配置目录中读取到当前摄像头的项目名,并将摄像头驱动程序源代码中的头文件名修改成获取的当前摄像头的项目名。从而实现了在编译的过程中动态的修改驱动程序源代码。
实例创建模块600,用于对修改后的摄像头驱动程序源代码进行实例创建,以得到与所述项目名对应的实例。现有技术中,对驱动程序源代码进行编译后,会生成与每个头文件相对应的多个实例,本发明中,由于头文件已经修改为获取的当前摄像头的项目名,即只有一个头文件,因此只会生成与当前摄像头的项目名相对应的一个实例,并将该实例存储于动态库中,从而大大减少了实例生成的数量,节约了存储空间。
本发明实施例提供的对摄像头驱动程序进行编译的装置可执行本发明实施例所提供的对摄像头驱动程序进行编译的方法,具备执行方法相应的功能模块和有益效果。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (10)
1.一种对摄像头驱动程序进行编译的方法,其特征在于,包括:
获取摄像头驱动程序源代码;
将所述摄像头驱动程序源代码导入编译器;
获取当前摄像头的项目名;
将所述摄像头驱动程序源代码中的头文件名修改为获取的项目名;
对修改后的摄像头驱动程序源代码进行实例创建,以得到与所述项目名对应的实例。
2.根据权利要求1所述的对摄像头驱动程序进行编译的方法,其特征在于,所述摄像头驱动程序源代码,包括多个头文件名和共用代码块。
3.根据权利要求2所述的对摄像头驱动程序进行编译的方法,其特征在于,所述每个头文件名对应某个品牌的摄像头的某个型号的某个批次号。
4.根据权利要求1-3任一所述的对摄像头驱动程序进行编译的方法,其特征在于,所述当前摄像头的项目名包括:当前摄像头的型号和批次号。
5.根据权利要求1-3任一所述的对摄像头驱动程序进行编译的方法,其特征在于,所述获取当前摄像头的项目名包括:从当前摄像头的配置目录文件中获取当前摄像头的项目名。
6.一种对摄像头驱动程序进行编译的装置,其特征在于,包括:
第一获取模块(100),用于获取摄像头驱动程序源代码;
导入模块(200),用于将所述摄像头驱动程序源代码导入编译器(500);
第二获取模块(300),用于获取当前摄像头的项目名;
代码动态修改模块(400),用于将所述摄像头驱动程序源代码中的头文件名修改为获取的项目名;
实例创建模块(600),用于对修改后的摄像头驱动程序源代码进行实例创建,以得到与所述项目名对应的实例。
7.根据权利要求6所述的对摄像头驱动程序进行编译的装置,其特征在于,所述摄像头驱动程序源代码,包括多个头文件名和共用代码块。
8.根据权利要求7所述的对摄像头驱动程序进行编译的装置,其特征在于,所述每个头文件名对应某个品牌的摄像头的某个型号的某个批次号。
9.根据权利要求6-8任一所述的对摄像头驱动程序进行编译的装置,其特征在于,所述当前摄像头的项目名包括:当前摄像头的型号和批次号。
10.根据权利要求6-8任一所述的对摄像头驱动程序进行编译的装置,其特征在于,所述第二获取模块(300),从当前摄像头的配置目录文件中获取当前摄像头的项目名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610350323.2A CN106066789A (zh) | 2016-05-24 | 2016-05-24 | 一种对摄像头驱动程序进行编译的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610350323.2A CN106066789A (zh) | 2016-05-24 | 2016-05-24 | 一种对摄像头驱动程序进行编译的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106066789A true CN106066789A (zh) | 2016-11-02 |
Family
ID=57421524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610350323.2A Pending CN106066789A (zh) | 2016-05-24 | 2016-05-24 | 一种对摄像头驱动程序进行编译的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106066789A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857837A (zh) * | 2019-04-30 | 2020-10-30 | 百度时代网络技术(北京)有限公司 | 用于驱动硬件的方法和装置 |
CN113286090A (zh) * | 2021-06-07 | 2021-08-20 | 经纬恒润(天津)研究开发有限公司 | 摄像头多驱动动态配置方法、加载方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894028A (zh) * | 2009-05-20 | 2010-11-24 | 广州盛华信息技术有限公司 | Linux内核镜像数据支持多种CPU的实现方法及装置 |
CN103914315A (zh) * | 2012-12-31 | 2014-07-09 | 展讯通信(上海)有限公司 | 驱动程序的配置方法 |
CN103942078A (zh) * | 2014-04-30 | 2014-07-23 | 华为技术有限公司 | 一种加载驱动程序的方法及嵌入式设备 |
CN104935709A (zh) * | 2015-06-19 | 2015-09-23 | 上海卓易科技股份有限公司 | 一种实现镜头兼容的方法及装置 |
-
2016
- 2016-05-24 CN CN201610350323.2A patent/CN106066789A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894028A (zh) * | 2009-05-20 | 2010-11-24 | 广州盛华信息技术有限公司 | Linux内核镜像数据支持多种CPU的实现方法及装置 |
CN103914315A (zh) * | 2012-12-31 | 2014-07-09 | 展讯通信(上海)有限公司 | 驱动程序的配置方法 |
CN103942078A (zh) * | 2014-04-30 | 2014-07-23 | 华为技术有限公司 | 一种加载驱动程序的方法及嵌入式设备 |
CN104935709A (zh) * | 2015-06-19 | 2015-09-23 | 上海卓易科技股份有限公司 | 一种实现镜头兼容的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857837A (zh) * | 2019-04-30 | 2020-10-30 | 百度时代网络技术(北京)有限公司 | 用于驱动硬件的方法和装置 |
CN113286090A (zh) * | 2021-06-07 | 2021-08-20 | 经纬恒润(天津)研究开发有限公司 | 摄像头多驱动动态配置方法、加载方法及相关装置 |
CN113286090B (zh) * | 2021-06-07 | 2023-07-18 | 经纬恒润(天津)研究开发有限公司 | 摄像头多驱动动态配置方法、加载方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6198939B2 (ja) | ドライバをロードする方法及び組み込みデバイス | |
CN103677921B (zh) | 一种Android系统兼容wifi芯片的方法及系统 | |
CN101604241A (zh) | 一种嵌入式系统的代码生成方法 | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
CN111538488B (zh) | 一种单片机驱动程序生成方法及装置 | |
CN109408493A (zh) | 一种数据源的迁移方法及系统 | |
CN107797805B (zh) | 一种代码封装方法、装置及计算机可读存储介质 | |
CN106066789A (zh) | 一种对摄像头驱动程序进行编译的方法和装置 | |
CN110659088B (zh) | 一种嵌入式环境下程序扩展的方法及系统 | |
CN110888922A (zh) | 一种数据同步时目标表的创建方法及装置 | |
CN109558121A (zh) | 接口驱动程序的开发方法、装置、设备及存储介质 | |
CN110457013B (zh) | 程序组件配置装置及方法 | |
WO2019071535A1 (zh) | 计算机存储介质、程序运行监测方法及装置 | |
CN111857690A (zh) | 一种动画效果的调试方法、装置、计算机设备及存储介质 | |
CN115629802A (zh) | 程序移植处理方法及装置 | |
JP4870956B2 (ja) | 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部 | |
CN114816363A (zh) | 一种基于MyBatis的数据服务API实现方法及装置 | |
CN110333870B (zh) | Simulink模型变量分配的处理方法、装置及设备 | |
CN114218261A (zh) | 数据查询方法、装置、存储介质以及电子设备 | |
CN109918059B (zh) | 应用的功能扩展方法、装置、终端设备和存储介质 | |
CN112596734A (zh) | 静态库生成方法及装置 | |
CN113064692B (zh) | 一种固件图片资源数据的生成方法及系统 | |
CN106484491B (zh) | 云编译方法及系统 | |
TWI774469B (zh) | 程式編譯管理系統與其作業方法 | |
CN110704517B (zh) | 一种生成任务的方法、装置、存储介质及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161102 |