CN107729083A - 一种加载驱动程序的方法及嵌入式设备 - Google Patents
一种加载驱动程序的方法及嵌入式设备 Download PDFInfo
- Publication number
- CN107729083A CN107729083A CN201710955964.5A CN201710955964A CN107729083A CN 107729083 A CN107729083 A CN 107729083A CN 201710955964 A CN201710955964 A CN 201710955964A CN 107729083 A CN107729083 A CN 107729083A
- Authority
- CN
- China
- Prior art keywords
- driver
- embedded device
- file
- model identification
- mirror image
- 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
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种加载驱动程序的方法及设备,该方法包括:确定嵌入式设备包含的器件对应的型号标识,查找与该器件对应的型号标识相关联的驱动程序;将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动;在该方案中,为待加载驱动程序的器件加载驱动程序时,根据该待加载驱动程序的器件的型号标识去查找相关联的驱动程序,进而将该相关联的驱动程序进行加载即可,不需要去多个器件的驱动程序组合中去查找,也不需要生成多个器件的驱动程序对应的标识的组合,因此,降低了所消耗的时间,提高了加载效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种加载驱动程序的方法及嵌入式设备。
背景技术
随着通信技术的迅速发展,计算机领域经历了PC(Personal Computer,个人电脑)时代,经历了网络时代,进而面向所谓的后PC时代,嵌入式设备作为PC时代及后网络时代的新秀,重要性日益凸显。
目前,智能手机、穿戴设备等嵌入式设备上支持的器件越来越多,而每一个器件必须要有对应的驱动程序加载后才能运行,同一型号的嵌入式设备中的同一器件往往由不同厂家提供的,而不同厂家提供的同一器件对应的驱动程序也是不同的。在实际应用中,每一个嵌入式设备在出厂前,要将该嵌入式设备上的每一个器件的驱动程序加载完毕,以便持有嵌入式设备的用户可以直接使用。
现有技术中,在加载驱动程序之前,要先将各个器件会使用到的驱动程序的标识进行组合,得到驱动程序标识组合,并将多个驱动程序标识组合添加到注册表中,嵌入式设备在加载驱动程序时,去注册表中进行查找,确定本嵌入式设备对应的驱动程序标识组合,然后根据该驱动程序标识组合中包括的各个器件的驱动程序的标识去查找对应的驱动程序,进而进行加载。
例如,嵌入式设备有两个器件:陀螺仪、重力传感器,陀螺仪由两个厂家提供,厂家1提供的陀螺仪的驱动程序1对应的标识为标识1、厂家2提供的陀螺仪的驱动程序2对应的标识为标识2;重力传感器也由两个厂家提供,厂家3提供的重力传感器的驱动程序3对应的标识为标识3、厂家4提供的重力传感器的驱动程序4对应的标识为标识4,那么要生成四种驱动程序标识组合:驱动程序标识组合1:标识1和标识3;驱动程序标识组合2:标识1和标识4;驱动程序标识组合3:标识2和标识3;驱动程序标识组合4:标识2和标识4;每一批次的嵌入式设备都与一种驱动程序标识组合相对应,且在生产完成后对应的驱动程序标识组合也已经确定,因此,该嵌入式设备要加载驱动程序时,要先去注册表中查找驱动程序标识组合1、驱动程序标识组合2、驱动程序标识组合3、驱动程序标识组合4四种驱动程序标识组合中与该批次的嵌入式设备对应的驱动程序标识组合,然后,根据该驱动程序标识组合中包括的驱动程序的标识去查找驱动程序,进而去加载。
嵌入式设备加载驱动程序时,该嵌入式设备与一个驱动程序标识组合相对应,然后,找到对应的驱动程序标识组合中包括的各个器件的驱动程序的标识,去加载与驱动程序的标识对应的驱动程序,随着嵌入式设备中的器件的增加,及每一个器件的生产厂商的多样化,驱动程序标识组合也越来越多,因此,存在耗时较长、加载效率较低的缺陷。
发明内容
本发明实施例提供一种加载驱动程序的方法及装置,用以解决现有技术中存在的耗时较长、加载效率较低的问题。
本发明实施例提供的具体技术方案如下:
第一方面,提供一种加载驱动程序的方法,包括:
确定嵌入式设备包含的器件对应的型号标识;所述器件为待加载驱动程序的器件;
查找与所述器件对应的型号标识相关联的驱动程序;
将查找到的驱动程序加载至所述嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动。
结合第一方面,在第一种可能的实现方式中,查找与所述器件对应的型号标识相关联的驱动程序,具体包括:
通过所述嵌入式设备的最小运行***镜像查找与所述器件对应的型号标识相关联的驱动程序,其中,所述最小运行***镜像用于所述嵌入式设备的启动、业务功能的运行,及所述嵌入式设备所包含的器件的驱动程序的加载。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在查找与所述器件对应的型号标识相关联的驱动程序之前,还包括:
生成所述嵌入式设备的最小运行***镜像。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,生成所述嵌入式设备的最小运行***镜像,包括:
将基于所述嵌入式设备的业务功能开发的原始代码编译生成初始最小运行***镜像,所述初始最小运行***镜像包括可执行文件及可执行连接格式的文件;所述原始代码是用于实现所述嵌入式设备的业务功能;
从所述初始最小运行***镜像所包括的可执行连接格式的文件中抽取符号表;
根据所述符号表生成C文件,并将生成的C文件添加至所述原始代码;
将添加所述C文件后的所述原始代码进行编译,得到所述嵌入式设备的最小运行***镜像。
结合第一方面,或者第一方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,在查找与所述器件对应的型号标识相关联的驱动程序之前,还包括:
确定与所述器件同类型的器件分别的型号标识,以及所述同类型的器件分别对应的驱动程序;其中,所述同类型的器件为与所述器件具有相同属性或功能的器件;
存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系,具体包括:
将每一个所述同类型器件的驱动程序编译为预设格式的文件,所述预设格式的文件具有重定位的属性;
将所述预设格式的文件,按照预设规则进行存储,并获取存储所述预设格式的文件的逻辑地址;
存储所述任意一型号标识与获取得到的逻辑地址的对应关系。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述预设格式的文件的地址字段为初始预设值;在将所述预设格式的文件,按照预设规则进行存储之后,所述方法还包括:
将所述预设格式的文件的地址字段中的所述初始预设值更改为所述逻辑地址。
结合第一方面的第五或第六种可能的实现方式,在第七种可能的实现方式中,查找与所述器件对应的型号标识相关联的驱动程序,具体包括:
从存储的关联关系中确定与所述器件对应的型号标识对应的逻辑地址;
将确定的逻辑地址中存储的预设格式的文件,作为与所述器件对应的型号标识相关联的驱动程序。
结合第一方面的第六或第七种可能的实现方式,在第八种可能的实现方式中,将查找到的驱动程序加载至所述嵌入式设备的内存,具体包括:
确定所述驱动程序加载至所述嵌入式设备的内存后的物理地址;
将所述驱动程序中的地址字段从逻辑地址修改为所述物理地址。
结合第一方面的第一至第八种可能的实现方式,在第九种可能的实现方式中,将查找到的驱动程序加载至所述嵌入式设备的内存,包括:
采用动态加载的方式通过所述最小运行***镜像将查找到的驱动程序加载至所述嵌入式设备的内存。
结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,采用动态加载的方式通过所述最小运行***镜像将查找到的驱动程序加载至所述嵌入式设备的内存,具体包括:
利用所述最小运行***镜像中的函数和全局变量,将查找的驱动程序拷贝至所述嵌入式设备的内存;
基于所述最小运行***镜像采用函数指针的形式,调用所述查找到的驱动程序中的接口函数,将拷贝至所述嵌入式设备的内存的驱动程序进行链接。
第二方面,提供一种加载驱动程序的嵌入式设备,包括:
确定单元,用于确定嵌入式设备包含的器件对应的型号标识;所述器件为待加载驱动程序的器件;
查找单元,用于查找与所述器件对应的型号标识相关联的驱动程序;
加载单元,用于将查找到的驱动程序加载至所述嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动。
结合第二方面,在第一种可能的实现方式中,所述查找单元具体用于:
通过所述嵌入式设备的最小运行***镜像查找与所述器件对应的型号标识相关联的驱动程序,其中,所述最小运行***镜像用于所述嵌入式设备的启动、业务功能的运行,及所述嵌入式设备所包含的器件的驱动程序的加载。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括生成单元,所述生成单元用于生成所述嵌入式设备的最小运行***镜像。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述生成单元包括:
编译模块,用于将基于所述嵌入式设备的业务功能开发的原始代码编译生成初始最小运行***镜像,所述初始最小运行***镜像包括可执行文件及可执行连接格式的文件;所述原始代码是用于实现所述嵌入式设备的业务功能;
抽取模块,用于从所述初始最小运行***镜像所包括的可执行连接格式的文件中抽取符号表;根据所述符号表生成C文件,并将生成的C文件添加至所述原始代码;
所述编译模块还用于,将添加所述C文件后的所述原始代码进行编译,得到所述嵌入式设备的最小运行***镜像。
结合第二方面,或者第二方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,还包括存储单元,所述存储单元具体用于:
确定与所述器件同类型的器件分别的型号标识,以及所述同类型的器件分别对应的驱动程序;其中,所述同类型的器件为与所述器件具有相同属性或功能的器件;
存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述存储单元具体用于:
将每一个所述同类型器件的驱动程序编译为预设格式的文件,所述预设格式的文件具有重定位的属性;将所述预设格式的文件,按照预设规则进行存储,并获取存储所述预设格式的文件的逻辑地址;存储所述任意一型号标识与获取得到的逻辑地址的对应关系。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述预设格式的文件的地址字段为初始预设值,所述存储单元还用于:
在将所述预设格式的文件,按照预设规则进行存储之后,将所述预设格式的文件的地址字段中的所述初始预设值更改为所述逻辑地址。
结合第二方面的第五或第六种可能的实现方式,在第七种可能的实现方式中,所述查找单元具体用于:
从存储的关联关系中确定与所述器件对应的型号标识对应的逻辑地址;
将确定的逻辑地址中存储的预设格式的文件,作为与所述器件对应的型号标识相关联的驱动程序。
结合第二方面的第六或第七种可能的实现方式,在第八种可能的实现方式中,所述加载单元具体用于:
确定所述驱动程序加载至所述嵌入式设备的内存后的物理地址;
将所述驱动程序中的地址字段从逻辑地址修改为所述物理地址。
结合第二方面的第一至第八种可能的实现方式,在第九种可能的实现方式中,所述加载单元具体用于:
利用所述最小运行***镜像中的函数和全局变量,将查找的驱动程序拷贝至所述嵌入式设备的内存;
基于所述最小运行***镜像采用函数指针的形式,调用所述查找到的驱动程序中的接口函数,将拷贝至所述嵌入式设备的内存的驱动程序进行链接。
本发明有益效果如下:
现有技术中,嵌入式设备在加载驱动程序时,去注册表中查找与本嵌入式设备对应的驱动程序标识组合,然后,根据驱动程序标识组合中包括的驱动程序的标识,去查找每一个驱动程序的标识对应的驱动程序,由于驱动程序标识组合也越来越多,因此,存在耗时较长、加载效率较低的缺陷,本发明实施例中,确定嵌入式设备包含的器件当前对应的型号标识;器件为待加载驱动程序的器件;查找与器件对应的型号标识相关联的驱动程序;将查找到的驱动程序加载至嵌入式设备的内存,控制链接至嵌入式设备的内存的驱动程序对器件进行驱动,在该方案中,为待加载驱动程序的器件加载驱动程序时,根据该待加载驱动程序的器件的型号标识去查找相关联的驱动程序,进而将该相关联的驱动程序进行加载即可,不需要生成多个驱动程序标识组合,不需要去多个驱动程序标识组合中去查找,也因此,降低了所消耗的时间,提高了加载效率。
附图说明
图1A为本发明实施例中加载驱动程序的流程图;
图1B为本发明实施例中生成最小运行***镜像的示意图;
图1C为本发明实施例中驱动程序编译为预设格式的文件的示意图;
图1D为本发明实施例中加载的实现示意图;
图2为本发明实施例中加载驱动程序的实施例;
图3为本发明实施例中嵌入式设备的功能结构示意图;
图4为本发明实施例中嵌入式设备的实体装置结构示意图。
具体实施方式
使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在实际应用中,一个嵌入式设备通常包括多个器件,比如显示器、传感器、处理器、摄像头等等,每一个器件在运行之前,都需要加载驱动程序,因此,本发明实施例中,提供一种加载驱动程序的方法,该方法中:确定嵌入式设备包含的器件对应的型号标识;器件为待加载驱动程序的器件;查找与器件对应的型号标识相关联的驱动程序;将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至嵌入式设备的内存的驱动程序对器件进行驱动,在该方案中,为待加载驱动程序的器件加载驱动程序时,根据该待加载驱动程序的器件的型号标识去查找相关联的驱动程序,进而将该相关联的驱动程序进行加载即可,不需要去多个器件的驱动程序的组合中去查找,也不需要生成多个器件的驱动程序对应的标识的组合,因此,降低了所消耗的时间,提高了加载效率。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1A所示,本发明实施例中提供一种加载驱动程序的方法,该方法的具体过程如下:
步骤100:确定嵌入式设备包含的器件对应的型号标识;器件为待加载驱动程序的器件;
步骤110:查找与器件对应的型号标识相关联的驱动程序;
步骤120:将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至嵌入式设备的内存的驱动程序对器件进行驱动。
本发明实施例中,步骤100-步骤120的方案的触发条件有多种,例如,在接收到加载驱动程序的指示时,开始执行步骤100-步骤120,当然,在实际应用中,还有其他触发条件,在此不再进行详述。
本发明实施例中,接收到的加载驱动程序的指示有多种,例如,嵌入式设备初始化的指示可以作为加载驱动程序的指示,还例如,检测到嵌入式设备******设备时,可以将检测信息作为加载驱动程序的指示,当然,在实际应用中,还有多种其他形式,在此不再进行一一详述。
本发明实施例中,型号标识用于唯一标识由某一厂家生产的同一种器件,不同厂家生产同类型器件由不同的型号标识来区分,即型号标识用于表征某一器件由某一厂家生产,例如,型号标识1:A10376BZH,用于表征陀螺仪由XX厂家生产;型号标识2:B10376ASD,用于表征重力传感器由LLL厂家生产,一般地,型号标识的前两位用于标识器件,型号标识的后三位用于表示厂家,型号标识的其他位可以标识器件的生产批次等,可以随着应用场景的不同而进行变化,在此不再进行详述,同理,型号标识也可以随着应用场景的不同而进行变化,在此不再进行详述。
本发明实施例中,查找与器件对应的型号标识相关联的驱动程序的方式有多种,可选的,可以采用如下形式:
通过嵌入式设备的最小运行***镜像查找与器件对应的型号标识相关联的驱动程序,其中,最小运行***镜像用于嵌入式设备的启动、业务功能的运行,及嵌入式设备所包含的器件的驱动程序的加载,最小运行***镜像只包括BSP(Board Support Package,板级支持包)、操作***与应用层软件。
需要说明的是,现在技术中的操作***镜像通常包括BSP、操作***与应用层软件,除此之外还包括器件的驱动程序,因此,现有技术中,对器件的驱动程序的加载仅仅指的是将驱动程序的初始化,而本发明实施例中,最小运行***镜像只包括BSP、操作***与应用层软件,因此,要先将驱动程序加载至嵌入式设备的内存,然后,再对驱动程序的初始化,因此,本发明实施例中的最小运行***镜像的功能与现在技术中的操作***镜像的功能相比,多了驱动程序加载的功能。
当然,在实际应用中,还可以通过其他方式实现查找与器件对应的型号标识相关联的驱动程序,在此不再进行一一详述。
此时,在查找与器件对应的型号标识相关联的驱动程序之前,还包括如下操作:
生成嵌入式设备的最小运行***镜像。
本发明实施例中,在生成嵌入式设备的最小运行***镜像时,要通过二次编译来实现,具体可以采用如下方式,如图1B所示:
将基于嵌入式设备的业务功能开发的原始代码编译生成初始最小运行***镜像,初始最小运行***镜像包括可执行文件及可执行连接格式的文件;原始代码是用于实现嵌入式设备的业务功能;
从初始最小运行***镜像所包括的可执行连接格式的文件中抽取符号表;
将符号表生成C文件,并将生成的C文件添加至原始代码;
将添加C文件后的原始代码进行编译,得到嵌入式设备的最小运行***镜像。
本发明实施例中,为了使第二次编译后得到的最小运行***镜像中包括的函数和全局变量的执行地址,与第一次编译生成的最小运行***镜像中的符号表地址完全匹配,在第二次编译过程中,在链接脚本段划分的尾部新增两个段空间,用来存放符号表中生成的data和字符串。
在实际应用中,查找与器件对应的型号标识相关联的驱动程序之前,应该先存储与待加载驱动程序的器件对应的型号标识相关联的驱动程序,因此,本发明实施例中,在查找与器件对应的型号标识相关联的驱动程序之前之前,还包括如下操作:
确定与器件同类型的器件分别的型号标识,以及同类型的器件分别对应的驱动程序;其中,同类型的器件为与器件具有相同属性或功能的器件;
存储确定出的每一个与器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系。
本发明实施例中,同类型的器件可以有多种形式,例如,可以是由不同厂家生产的具有相同功能或属性的器件,比如由A、B、C厂家分别生产的显示屏,这三个厂家分别生产的显示屏为同类型的器件,或者,由A、B、C厂家分别生产的重力传感器,这三个厂家分别生产的重力传感器为同类型的器件;又例如,也可以是同一厂家生产的不同批次或版本的具有相同功能或属性器件,比如由A厂家生产的500W像素的摄像头、800W像素的摄像头,这两类摄像头也为同类型的器件。
例如:显示屏S由三个生产厂家,其中,来自于厂家A的显示屏S对应的型号标识为型号标识1,对应驱动程序1;来自于厂家B的显示屏S对应的型号标识为型号标识2,对应驱动程序2;来自于厂家C的显示屏S对应的型号标识为型号标识3,对应驱动程序3,那么,显示屏S对应于三个型号标识,且每一个型号标识对应于一个驱动程序,那么针对于显示屏S,记录三条关联关系:第一条关联关系:型号标识1与驱动程序1的关联关系、第二条关联关系:型号标识2与驱动程序2的关联关系、第三条关联关系:型号标识3与驱动程序3的关联关系。
本发明实施例中,存储确定出的每一个与器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系的方式有多种,可选的,可以采用如下方式:
将每一个同类型器件的驱动程序编译为预设格式的文件,预设格式的文件具有重定位的属性;
将预设格式的文件,按照预设规则进行存储,并获取存储预设格式的文件的逻辑地址;
存储任意一型号标识与获取得到的逻辑地址的对应关系。
本发明实施例中,预设格式的文件有多种,可选的,可以为ELF(Executable andLinkable Format,可执行连接格式)的文件,此时,预设格式的文件的后缀为.o,当然,在实际应用中,随着应用场景的不同,预设格式的文件还可以为其他形式,在此不再进行详述。
本发明实施例中,将每一个同类型器件的驱动程序编译为预设格式的文件的方式有多种,将驱动程序中包括的每一个后缀为.c的文件通过编译命令编译成预设格式的文件,再将编译出的各个预设格式的文件,通过链接命令,链接成一个预设格式的文件,其中,该预设格式的文件可以为ELF文件。
如图1C所示,一个驱动程序中包括n个文件,在存储之前每一个文件的后缀为.c,先通过编译命令将驱动程序中的每一个后缀为.c的文件编译成后缀为.o的文件,再将编译出的各个后缀为.o的文件,通过链接命令,链接成一个后缀为.o的为ELF文件格式,该ELF文件格式的文件具有重定位的属性。
本发明实施例中,可以通过如下方式将预设格式的文件,按照预设规则进行存储,例如,通过打包工具imagebuild将驱动程序、和布局描述打包生成一个大镜像,进而将生成的大镜像烧入Flash,当然,还可以将最小运行***镜像、驱动程序、和布局描述打包生成一个大镜像,此时,包括最小运行***镜像、驱动程序、和布局描述的大镜像的数据存储结构描述格式如表1所示:
表1大镜像的数据存储结构描述
在上述过程中,预设规则所设置的规则包括在布局描述中,也就是说,通过布局描述可以获得预设规则所设置的形式。
本发明实施例中,预设规则有多种形式,例如,连续存储,间隔存储等方式,当然,还有其他方式,在此不再进行一一详述。
本发明实施例中,布局描述的数据结构如下:
在存储驱动程序时,若通过生成大镜像进而烧入至Flash中,此时,布局描述中存储有存储任意一型号标识与获取得到的逻辑地址的对应关系。
本发明实施例中,预设格式的文件的地址字段为初始预设值;在将预设格式的文件,按照预设规则进行存储之后,方法还包括:
将预设格式的文件的地址字段中的初始预设值更改为逻辑地址。
本发明实施例中,查找与器件对应的型号标识相关联的驱动程序的方式有多种,可选的,可以采用如下方式:
从存储的关联关系中确定与器件对应的型号标识对应的逻辑地址;
将确定的逻辑地址中存储的预设格式的文件,作为与器件对应的型号标识相关联的驱动程序。
例如,从Flash的布局描述存储的对应关系中查找与器件对应的型号标识对应的逻辑地址,将确定的逻辑地址中存储的预设格式的文件,作为与器件对应的型号标识相关联的驱动程序。
本发明实施例中,将查找到的驱动程序加载至嵌入式设备的内存的方式有多种,可选的,可以采用如下方式:
确定驱动程序加载至嵌入式设备的内存后的物理地址;
将驱动程序中的地址字段从逻辑地址修改为物理地址。
本发明实施例中,将查找到的驱动程序加载至嵌入式设备的内存的方式有多种,可选的,可以采用如下方式:
采用动态加载的方式通过最小运行***镜像将查找到的驱动程序加载至嵌入式设备的内存。
当然,在实际应用中,还有其他实现方式,在此不再进行一一详述。
本发明实施例中,采用动态加载的方式通过最小运行***镜像将查找到的驱动程序加载至嵌入式设备的内存的方式有多种,可选的,可以采用如下方式:
利用最小运行***镜像中的函数和全局变量,将查找的驱动程序拷贝至嵌入式设备的内存,这种方式称为正向依赖方式。
然后,基于最小运行***镜像采用函数指针的形式,调用查找到的驱动程序中的接口函数,将拷贝至嵌入式设备的内存的驱动程序进行链接,这种方式称为反向依赖方式。
在具体实现时,可以采用如下步骤,如图1D所示:
步骤1:最小运行***镜像根据待加载的驱动程序对待调用的接口函数的指针进行初始化,即对接口函数赋予逻辑地址;
但是,由于赋予逻辑地址后,接口函数还是不能被调用。
步骤2:最小运行***镜像通过待加载的驱动程序中的已定义和未定义的符号进行解析,并将解析得到的符号加入到最小运行***镜像中的符号表,对符号表进行更新,然后,从更新后的符号表中获取待调用的接口函数的物理地址;
步骤3:根据物理地址对待调用的接口函数的指针进行赋值,即对待调用的接口函数的逻辑地址修改为物理地址。
在实际应用中,嵌入式设备的有些内存对该设备的影响较大,例如,该内存中存储的资源越多,该嵌入式设备的运行效率越低,因此,为了避免加载驱动程序后,对嵌入式设备运行效率的较大影响,本发明实施例中,在加载驱动程序时,支持分散加载,将重要的,或者使用频率较高的一些器件的驱动程序加载到优先级较高的内存中,将重要性较低,或者使用频率较低的一些器件的驱动程序加载至优先级较低的内存中,而不是将所有器件的驱动程序均加装至核心内存中,进而避免加载驱动程序后对嵌入式设备的运行效率的较大影响。
例如,在SRAM(Static Random Access Memory,静态随机存储器)空间不足的情况下,将初始化和使用频度低的驱动程序加载到DDR(Double Data Rate,双倍速率同步动态随机存储器)中。
在具体实现过程中,可以采用如下方式:
通过链接脚本,可以对待加载的驱动程序的数据和函数配置段属性,在动态加载过程中,分析对待加载驱动程序的数据和函数配置段属性,进而将待加载的驱动程序分散加载到DDR内存或者SRAM内存中。
本发明实施例中提及的加载至少包括两层含义,一层含义是指,将驱动程序拷贝到嵌入式设备的内存的操作,另一层含义是指,将拷贝到嵌入式设备的内存的驱动程序进行链接的操作,当然,在实际应用中,加载的含义还可以随着具体应用场景的不同而发生变化,在此不再进行一一详述。
为了更好地理解本发明实施例,以下给出具体应用场景,针对加载驱动程序的过程,作出进一步详细描述,如图2所示:
步骤200:生成嵌入式设备的最小运行***镜像;
步骤210:确定嵌入式设备中的10个待加载驱动程序的器件中的每一个器件对应的预设的型号标识,及每一个型号标识对应的驱动程序;
步骤220:将每一个待加载驱动程序的器件对应的预设的型号标识,及对应的驱动程序存储的物理地址的对应关系通过布局描述存储在Flash中;
步骤230:接收到加载驱动程序的指示时,确定嵌入式设备中的10个待加载驱动程序的器件分别对应的型号标识,针对确定的任意一型号标识,分别执行:通过最小运行***镜像从存储在Flash中的布局描述中查找与该任意一型号标识对应的驱动程序的逻辑地址;
步骤240:通过最小运行***镜像确定处于每一个查找到的逻辑地址的驱动程序,并将确定的驱动程序加载至嵌入式设备的内存,控制加载至嵌入式设备的内存的驱动程序对任意一待加载驱动程序的器件进行驱动。
基于上述技术方案,参阅图3所示,本发明实施例相应地提供一种加载驱动程序的嵌入式设备,该嵌入式设备包括确定单元30、查找单元31,及加载单元32,其中:
确定单元30,用于确定嵌入式设备包含的器件对应的型号标识;器件为待加载驱动程序的器件;
查找单元31,用于查找与器件对应的型号标识相关联的驱动程序;
加载单元32,用于将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至嵌入式设备的内存的驱动程序对器件进行驱动。
本发明实施例中,可选的,查找单元31具体用于:
通过嵌入式设备的最小运行***镜像查找与器件对应的型号标识相关联的驱动程序,其中,最小运行***镜像用于嵌入式设备的启动、业务功能的运行,及嵌入式设备所包含的器件的驱动程序的加载;具体地,最小运行***镜像可以仅包括BSP、操作***与应用层软件。
本发明实施例中,进一步的,还包括生成单元33,生成单元33用于生成嵌入式设备的最小运行***镜像。
本发明实施例中,可选的,生成单元33包括:
编译模块,用于将基于嵌入式设备的业务功能开发的原始代码编译生成初始最小运行***镜像,初始最小运行***镜像包括可执行文件及可执行连接格式的文件;原始代码是用于实现嵌入式设备的业务功能;
抽取模块,用于从初始最小运行***镜像所包括的可执行连接格式的文件中抽取符号表;将符号表生成C文件,并将生成的C文件添加至原始代码;
同时,该编译模块还用于,将添加C文件后的原始代码进行编译,得到嵌入式设备的最小运行***镜像。
本发明实施例中,进一步的,还包括存储单元34,存储单元34具体用于:
确定与器件同类型的器件分别的型号标识,以及同类型的器件分别对应的驱动程序;其中,同类型的器件为与器件具有相同属性或功能的器件;
存储确定出的每一个与器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系。
本发明实施例中,可选的,存储单元34在存储确定出的每一个与器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系时,具体为:
将每一个同类型器件的驱动程序编译为预设格式的文件,预设格式的文件具有重定位的属性;
将预设格式的文件,按照预设规则进行存储,并获取存储预设格式的文件的逻辑地址;
存储任意一型号标识与获取得到的逻辑地址的对应关系。
本发明实施例中,进一步的,存储单元34还用于:
将预设格式的文件的地址字段中的初始预设值更改为逻辑地址,预设格式的文件的地址字段为初始预设值。
本发明实施例中,可选的,查找单元31具体用于:
从存储的关联关系中确定与器件对应的型号标识对应的逻辑地址;
将确定的逻辑地址中存储的预设格式的文件,作为与器件对应的型号标识相关联的驱动程序。
本发明实施例中,可选的,加载单元32具体用于:
确定驱动程序加载至嵌入式设备的内存后的物理地址;
将驱动程序中的地址字段从逻辑地址修改为物理地址。
本发明实施例中,可选的,加载单元32具体用于:
采用动态加载的方式通过最小运行***镜像将查找到的驱动程序加载至嵌入式设备的内存。
本发明实施例中,可选的,加载单元32采用动态加载的方式通过最小运行***镜像将查找到的驱动程序加载至嵌入式设备的内存时,具体为:
利用最小运行***镜像中的函数和全局变量,将查找的驱动程序拷贝至嵌入式设备的内存;
基于最小运行***镜像采用函数指针的形式,调用查找到的驱动程序中的接口函数,将拷贝至嵌入式设备的内存的驱动程序进行链接。
如图4所示,为本发明实施例提供的嵌入式设备的实体装置结构图,嵌入式设备包括至少一个处理器401,通信总线402,存储器403以及至少一个通信接口404。
其中,通信总线402用于实现上述组件之间的连接并通信,通信接口404用于与外部设备连接并通信。
其中,存储器403用于存储有可执行的程序代码4031,处理器401通过执行这些程序代码4031,以用于:
确定嵌入式设备包含的器件对应的型号标识;器件为待加载驱动程序的器件;
查找与器件对应的型号标识相关联的驱动程序;
将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至嵌入式设备的内存的驱动程序对器件进行驱动。
可选地,处理器401还可以通过指定存储器403中的可执行代码,用于实现前述实施例的其他步骤和功能,在此不再赘述。
综上所述,本发明实施例中,提供一种加载驱动程序的方法,该方法中:确定嵌入式设备包含的器件对应的型号标识;器件为待加载驱动程序的器件;查找与器件对应的型号标识相关联的驱动程序;将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至嵌入式设备的内存的驱动程序对器件进行驱动,在该方案中,为待加载驱动程序的器件加载驱动程序时,根据该待加载驱动程序的器件的型号标识去查找相关联的驱动程序,进而将该相关联的驱动程序进行加载即可,不需要去多个器件的驱动程序的组合中去查找,也不需要生成多个器件的驱动程序对应的标识的组合,因此,降低了所消耗的时间,提高了加载效率。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (20)
1.一种加载驱动程序的方法,其特征在于,包括:
确定与所述器件同类型的器件分别的型号标识,以及所述同类型的器件分别对应的驱动程序;其中,所述同类型的器件为与所述器件具有相同属性或功能的器件;
存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系;
确定嵌入式设备包含的器件对应的型号标识;所述器件为待加载驱动程序的器件;
查找与所述器件对应的型号标识相关联的驱动程序;
将查找到的驱动程序加载至所述嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动。
2.如权利要求1所述的方法,其特征在于,查找与所述器件对应的型号标识相关联的驱动程序,具体包括:
通过所述嵌入式设备的最小运行***镜像查找与所述器件对应的型号标识相关联的驱动程序,其中,所述最小运行***镜像用于所述嵌入式设备的启动、业务功能的运行,及所述嵌入式设备所包含的器件的驱动程序的加载。
3.如权利要求2所述的方法,其特征在于,在查找与所述器件对应的型号标识相关联的驱动程序之前,还包括:
生成所述嵌入式设备的最小运行***镜像。
4.如权利要求3所述的方法,其特征在于,生成所述嵌入式设备的最小运行***镜像,包括:
将基于所述嵌入式设备的业务功能开发的原始代码编译生成初始最小运行***镜像,所述初始最小运行***镜像包括可执行文件及可执行连接格式的文件;所述原始代码是用于实现所述嵌入式设备的业务功能;
从所述初始最小运行***镜像所包括的可执行连接格式的文件中抽取符号表;
根据所述符号表生成C文件,并将生成的C文件添加至所述原始代码;
将添加所述C文件后的所述原始代码进行编译,得到所述嵌入式设备的最小运行***镜像。
5.如权利要求1所述的方法,其特征在于,存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系,具体包括:
将每一个所述同类型器件的驱动程序编译为预设格式的文件,所述预设格式的文件具有重定位的属性;
将所述预设格式的文件,按照预设规则进行存储,并获取存储所述预设格式的文件的逻辑地址;
存储所述任意一型号标识与获取得到的逻辑地址的对应关系。
6.如权利要求5所述的方法,其特征在于,所述预设格式的文件的地址字段为初始预设值;在将所述预设格式的文件,按照预设规则进行存储之后,所述方法还包括:
将所述预设格式的文件的地址字段中的所述初始预设值更改为所述逻辑地址。
7.如权利要求5所述的方法,其特征在于,查找与所述器件对应的型号标识相关联的驱动程序,具体包括:
从存储的关联关系中确定与所述器件对应的型号标识对应的逻辑地址;
将确定的逻辑地址中存储的预设格式的文件,作为与所述器件对应的型号标识相关联的驱动程序。
8.如权利要求6或7所述的方法,其特征在于,将查找到的驱动程序加载至所述嵌入式设备的内存,具体包括:
确定所述驱动程序加载至所述嵌入式设备的内存后的物理地址;
将所述驱动程序中的地址字段从逻辑地址修改为所述物理地址。
9.如权利要求2所述的方法,其特征在于,将查找到的驱动程序加载至所述嵌入式设备的内存,包括:
采用动态加载的方式通过所述最小运行***镜像将查找到的驱动程序加载至所述嵌入式设备的内存。
10.如权利要求9所述的方法,其特征在于,采用动态加载的方式通过所述最小运行***镜像将查找到的驱动程序加载至所述嵌入式设备的内存,具体包括:
利用所述最小运行***镜像中的函数和全局变量,将查找的驱动程序拷贝至所述嵌入式设备的内存;
基于所述最小运行***镜像采用函数指针的形式,调用所述查找到的驱动程序中的接口函数,将拷贝至所述嵌入式设备的内存的驱动程序进行链接。
11.一种加载驱动程序的嵌入式设备,其特征在于,包括:
存储单元,用于确定与所述器件同类型的器件分别的型号标识,以及所述同类型的器件分别对应的驱动程序;其中,所述同类型的器件为与所述器件具有相同属性或功能的器件;存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系;
确定单元,用于确定嵌入式设备包含的器件对应的型号标识;所述器件为待加载驱动程序的器件;
查找单元,用于查找与所述器件对应的型号标识相关联的驱动程序;
加载单元,用于将查找到的驱动程序加载至所述嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动。
12.如权利要求11所述的嵌入式设备,其特征在于,所述查找单元具体用于:
通过所述嵌入式设备的最小运行***镜像查找与所述器件对应的型号标识相关联的驱动程序,其中,所述最小运行***镜像用于所述嵌入式设备的启动、业务功能的运行,及所述嵌入式设备所包含的器件的驱动程序的加载。
13.如权利要求12所述的嵌入式设备,其特征在于,还包括生成单元,所述生成单元用于生成所述嵌入式设备的最小运行***镜像。
14.如权利要求13所述的嵌入式设备,其特征在于,所述生成单元包括:
编译模块,用于将基于所述嵌入式设备的业务功能开发的原始代码编译生成初始最小运行***镜像,所述初始最小运行***镜像包括可执行文件及可执行连接格式的文件;所述原始代码是用于实现所述嵌入式设备的业务功能;
抽取模块,用于从所述初始最小运行***镜像所包括的可执行连接格式的文件中抽取符号表;根据所述符号表生成C文件,并将生成的C文件添加至所述原始代码;
所述编译模块还用于,将添加所述C文件后的所述原始代码进行编译,得到所述嵌入式设备的最小运行***镜像。
15.如权利要求11所述的嵌入式设备,其特征在于,所述存储单元具体用于:
将每一个所述同类型器件的驱动程序编译为预设格式的文件,所述预设格式的文件具有重定位的属性;将所述预设格式的文件,按照预设规则进行存储,并获取存储所述预设格式的文件的逻辑地址;存储所述任意一型号标识与获取得到的逻辑地址的对应关系。
16.如权利要求15所述的嵌入式设备,其特征在于,所述预设格式的文件的地址字段为初始预设值,所述存储单元还用于:
在将所述预设格式的文件,按照预设规则进行存储之后,将所述预设格式的文件的地址字段中的所述初始预设值更改为所述逻辑地址。
17.如权利要求15所述的嵌入式设备,其特征在于,所述查找单元具体用于:
从存储的关联关系中确定与所述器件对应的型号标识对应的逻辑地址;并将确定的逻辑地址中存储的预设格式的文件,作为与所述器件对应的型号标识相关联的驱动程序。
18.如权利要求16或17所述的嵌入式设备,其特征在于,所述加载单元具体用于:
确定所述驱动程序加载至所述嵌入式设备的内存后的物理地址,并将所述驱动程序中的地址字段从逻辑地址修改为所述物理地址。
19.如权利要求12所述的嵌入式设备,其特征在于,所述加载单元具体用于:
利用所述最小运行***镜像中的函数和全局变量,将查找的驱动程序拷贝至所述嵌入式设备的内存;
基于所述最小运行***镜像采用函数指针的形式,调用所述查找到的驱动程序中的接口函数,将拷贝至所述嵌入式设备的内存的驱动程序进行链接。
20.一种计算机***,包括处理器和存储器,其中所述存储器用于存储可执行程序,所述处理器用于读取所述存储器中存储的所述可执行程序以促使所述计算机***实现如权利要求1-10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710955964.5A CN107729083B (zh) | 2014-04-30 | 2014-04-30 | 一种加载驱动程序的方法及嵌入式设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410182979.9A CN103942078B (zh) | 2014-04-30 | 2014-04-30 | 一种加载驱动程序的方法及嵌入式设备 |
CN201710955964.5A CN107729083B (zh) | 2014-04-30 | 2014-04-30 | 一种加载驱动程序的方法及嵌入式设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410182979.9A Division CN103942078B (zh) | 2014-04-30 | 2014-04-30 | 一种加载驱动程序的方法及嵌入式设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729083A true CN107729083A (zh) | 2018-02-23 |
CN107729083B CN107729083B (zh) | 2021-02-12 |
Family
ID=51189754
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410182979.9A Active CN103942078B (zh) | 2014-04-30 | 2014-04-30 | 一种加载驱动程序的方法及嵌入式设备 |
CN201710955964.5A Active CN107729083B (zh) | 2014-04-30 | 2014-04-30 | 一种加载驱动程序的方法及嵌入式设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410182979.9A Active CN103942078B (zh) | 2014-04-30 | 2014-04-30 | 一种加载驱动程序的方法及嵌入式设备 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9875118B2 (zh) |
EP (1) | EP2966566B1 (zh) |
JP (1) | JP6198939B2 (zh) |
KR (1) | KR101736650B1 (zh) |
CN (2) | CN103942078B (zh) |
BR (1) | BR112016025249B1 (zh) |
TW (1) | TWI581188B (zh) |
WO (1) | WO2015165232A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886181A (zh) * | 2019-02-18 | 2019-06-14 | Oppo广东移动通信有限公司 | 指纹算法确定方法及相关设备 |
CN110362360A (zh) * | 2019-07-15 | 2019-10-22 | 惠州Tcl移动通信有限公司 | 驱动程序加载方法、装置、移动终端及存储介质 |
CN110990072A (zh) * | 2019-11-08 | 2020-04-10 | 杭州智控网络有限公司 | 价签屏幕多驱动动态加载方法 |
CN110990021A (zh) * | 2019-11-28 | 2020-04-10 | 杭州迪普科技股份有限公司 | 软件运行方法、装置、主控板及框式设备 |
CN113515315A (zh) * | 2021-07-01 | 2021-10-19 | 深圳创维-Rgb电子有限公司 | Wifi芯片驱动程序加载方法、装置、设备及存储介质 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942078B (zh) * | 2014-04-30 | 2017-11-17 | 华为技术有限公司 | 一种加载驱动程序的方法及嵌入式设备 |
EP2958021A1 (en) * | 2014-06-20 | 2015-12-23 | Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO | Data verification in a distributed data processing system |
CN105988850A (zh) * | 2015-05-12 | 2016-10-05 | 乐视移动智能信息技术(北京)有限公司 | 移动终端的开机控制方法和装置 |
CN105068933B (zh) * | 2015-08-25 | 2018-06-26 | 北京京东尚科信息技术有限公司 | 用于测试的浏览器驱动方法和设备 |
US10067757B2 (en) * | 2015-11-20 | 2018-09-04 | Google Llc | Dynamic update of an application in compilation and deployment with hot-swapping |
CN105744083A (zh) * | 2016-04-29 | 2016-07-06 | 努比亚技术有限公司 | 移动终端指纹自适应方法及装置 |
CN106028113A (zh) * | 2016-05-20 | 2016-10-12 | 乐视控股(北京)有限公司 | 调谐器驱动控制方法、装置 |
CN106066789A (zh) * | 2016-05-24 | 2016-11-02 | 乐视控股(北京)有限公司 | 一种对摄像头驱动程序进行编译的方法和装置 |
CN107632819B (zh) * | 2016-07-14 | 2021-02-09 | 南京南瑞继保电气有限公司 | 一种基于符号表的可编程逻辑调试的方法和*** |
US10445081B2 (en) * | 2016-07-28 | 2019-10-15 | American Megatrends International, Llc | Techniques of automatically generating dependencies for applications in embedded systems |
CN106325941A (zh) * | 2016-08-25 | 2017-01-11 | 许继集团有限公司 | 一种嵌入式设备的fpga动态功能切换方法及装置 |
CN107957887A (zh) * | 2016-10-13 | 2018-04-24 | 阿里巴巴集团控股有限公司 | 一种设备的组件加载方法、装置以及物联网*** |
CN106775833B (zh) * | 2016-11-28 | 2021-03-16 | 青岛海信移动通信技术股份有限公司 | 设备驱动程序加载方法、终端及*** |
CN106649020A (zh) * | 2017-01-22 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种存储器机箱烧录信息的检测方法及装置 |
CN107145363A (zh) * | 2017-03-21 | 2017-09-08 | 捷开通讯(深圳)有限公司 | 一种终端开机过程的驱动程序加载方法及终端设备 |
CN107506212B (zh) * | 2017-08-28 | 2021-08-17 | 北京翼辉信息技术有限公司 | 一种在实时操作***上动态加载声卡驱动的方法 |
CN107704282B (zh) * | 2017-09-15 | 2021-02-02 | 北京东土科技股份有限公司 | 一种应用于嵌入式***的加载方法及装置 |
CN108182088B (zh) * | 2017-11-22 | 2021-02-09 | 深圳市万普拉斯科技有限公司 | 开机加速方法、装置、存储介质和移动终端 |
CN108052424A (zh) * | 2017-11-30 | 2018-05-18 | 深圳市万普拉斯科技有限公司 | Otg接口异常检测方法、装置、计算机设备和存储介质 |
CN109947482B (zh) * | 2017-12-21 | 2022-07-29 | 深圳Tcl新技术有限公司 | 一种usb设备的加载方法、存储介质及智能电视 |
CN108959169A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种单主板多版本程序适配方法、***、装置及存储介质 |
CN109240751B (zh) * | 2018-09-04 | 2021-12-21 | 广东小天才科技有限公司 | 一种电子设备的***模组兼容方法及电子设备 |
CN109739535B (zh) * | 2018-12-28 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种对产品进行驱动维护的方法和*** |
CN109840096B (zh) * | 2019-01-02 | 2023-02-07 | 新华三信息技术有限公司 | 操作***的安装方法及装置 |
CN111831341A (zh) * | 2019-03-29 | 2020-10-27 | 西安诺瓦电子科技有限公司 | 配置文件加载方法、装置及***和计算机可读介质 |
CN111857837A (zh) * | 2019-04-30 | 2020-10-30 | 百度时代网络技术(北京)有限公司 | 用于驱动硬件的方法和装置 |
CN111177046B (zh) | 2019-12-18 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种多总线设备融合访问的方法及装置 |
CN111221542B (zh) * | 2019-12-27 | 2023-10-20 | 福建升腾资讯有限公司 | 一种***镜像的生成安装方法、装置、***、设备和介质 |
KR102258202B1 (ko) | 2020-02-28 | 2021-05-28 | 서울대학교산학협력단 | 항공기기반 영상복원장치용 가상 해수면모델 생성장치 |
CN112486579A (zh) * | 2020-11-20 | 2021-03-12 | 中国人寿保险股份有限公司 | 自助终端设备驱动调用标准化方法及相关设备 |
CN113703853A (zh) * | 2021-08-24 | 2021-11-26 | 新华三智能终端有限公司 | 一种网络设备初始化方法及装置 |
CN115941717B (zh) * | 2022-10-10 | 2024-04-19 | 浙江南都能源科技有限公司 | 一种储能电站数据采集传输的方法及*** |
CN115857428B (zh) * | 2023-02-02 | 2023-06-16 | 杭州未名信科科技有限公司 | 一种控制plc设备的方法、装置、存储介质及终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1296231A2 (en) * | 2001-06-15 | 2003-03-26 | Microsoft Corporation | System and method for building a target operating system from a source operating system |
CN1885264A (zh) * | 2005-06-21 | 2006-12-27 | 国际商业机器公司 | 用于嵌入式***的软件包构建方法和*** |
CN1964525A (zh) * | 2005-11-09 | 2007-05-16 | 中兴通讯股份有限公司 | 一种智能加载手机硬件驱动程序的*** |
CN101102562A (zh) * | 2007-06-25 | 2008-01-09 | 嘉兴闻泰通讯科技有限公司 | 一种phs手机实现nor flash兼容的方法 |
CN101297286A (zh) * | 2005-10-31 | 2008-10-29 | 微软公司 | 自动化设备驱动程序管理 |
CN101510180A (zh) * | 2009-03-27 | 2009-08-19 | 四川长虹电器股份有限公司 | 一种自动兼容多种型号flash的软件处理方法 |
CN101814280A (zh) * | 2009-12-01 | 2010-08-25 | 深圳市九洲电器有限公司 | 一种电子设备及其显示面板的驱动方法 |
CN102831178A (zh) * | 2012-07-30 | 2012-12-19 | 华为技术有限公司 | 多级存储的重部署方法及装置 |
CN103677921A (zh) * | 2013-12-13 | 2014-03-26 | Tcl康钛汽车信息服务(深圳)有限公司 | 一种Android***兼容wifi芯片的方法及*** |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2569092B2 (ja) * | 1987-12-11 | 1997-01-08 | 株式会社日立製作所 | 入出力機器制御プログラムのアドレス解決方法 |
US5701476A (en) * | 1994-11-29 | 1997-12-23 | Intel Corporation | Method and apparatus for dynamically loading a driver routine in a computer memory |
JPH11296375A (ja) | 1998-04-08 | 1999-10-29 | Hitachi Ltd | デバイスドライバプログラムの自動選択方法 |
US20050086244A1 (en) * | 2000-02-01 | 2005-04-21 | Paul Morinville | Matrixed organization apparatus |
KR100671153B1 (ko) * | 2001-04-25 | 2007-01-17 | 엘지전자 주식회사 | 디바이스 드라이버 설치방법 |
US6792610B2 (en) * | 2002-05-30 | 2004-09-14 | Sun Microsystems, Inc. | Attaching a device driver to multiple logical devices of one physical device |
US20040005494A1 (en) * | 2002-07-05 | 2004-01-08 | Drake Javit A. | Chemical sensing in fuel cell systems |
US20040054945A1 (en) * | 2002-09-17 | 2004-03-18 | Smith Gerald E. | Symbol support in embedded firmware images |
CN1245685C (zh) * | 2002-12-31 | 2006-03-15 | 上海科泰世纪科技有限公司 | 基于构件的操作***动态设备驱动的方法 |
CN1303542C (zh) * | 2003-10-24 | 2007-03-07 | 英业达股份有限公司 | Linux操作***下对USB设备即插即用的方法 |
US7802197B2 (en) | 2005-04-22 | 2010-09-21 | Microsoft Corporation | Adaptive systems and methods for making software easy to use via software usage mining |
US7372746B2 (en) * | 2005-08-17 | 2008-05-13 | Micron Technology, Inc. | Low voltage sensing scheme having reduced active power down standby current |
JP4918276B2 (ja) * | 2006-04-27 | 2012-04-18 | 株式会社リコー | 情報処理装置および情報処理方法 |
EP1975786A1 (en) * | 2007-03-29 | 2008-10-01 | Ricoh Company, Ltd. | Method for installing a printer driver on an end user's computer |
US20110054884A1 (en) * | 2007-09-17 | 2011-03-03 | Capfinder Aktiebolag | System for assisting in drafting applications |
US9335980B2 (en) * | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using wrapping propagate instructions in the macroscalar architecture |
TWI417789B (zh) * | 2009-07-07 | 2013-12-01 | Via Tech Inc | 電腦系統及啟動方法 |
SE1050258A1 (sv) * | 2010-03-19 | 2011-09-20 | Sto Scandinavia Ab | Byggsystem för väggar ovan mark |
WO2011133030A1 (en) * | 2010-04-23 | 2011-10-27 | Vector Fabrics B.V. | Improved embedded system performance |
US20120054740A1 (en) | 2010-08-31 | 2012-03-01 | Microsoft Corporation | Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments |
US9043754B2 (en) | 2010-12-28 | 2015-05-26 | Microsoft Corporation | Virtualizing embedded devices |
US9110679B1 (en) * | 2011-06-03 | 2015-08-18 | Phoenix Technologies Ltd. | Pre-boot management of drivers and programs |
US9148399B1 (en) * | 2011-06-21 | 2015-09-29 | Google Inc. | Automatic publication of a user's application installation events |
JP5687639B2 (ja) * | 2012-02-08 | 2015-03-18 | 株式会社東芝 | コントローラ、データ記憶装置及びプログラム |
JP5846016B2 (ja) | 2012-03-30 | 2016-01-20 | 富士通株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
JP5910348B2 (ja) * | 2012-06-26 | 2016-04-27 | ブラザー工業株式会社 | 情報処理プログラム、情報処理装置および情報処理装置の制御方法 |
US9469725B2 (en) * | 2012-06-28 | 2016-10-18 | Johnson & Johnson Consumer Inc. | Ultraviolet radiation absorbing polymers |
US8904162B2 (en) * | 2012-08-01 | 2014-12-02 | Intel Corporation | Methods and apparatus for performing secure BIOS upgrade |
CN103942078B (zh) * | 2014-04-30 | 2017-11-17 | 华为技术有限公司 | 一种加载驱动程序的方法及嵌入式设备 |
-
2014
- 2014-04-30 CN CN201410182979.9A patent/CN103942078B/zh active Active
- 2014-04-30 CN CN201710955964.5A patent/CN107729083B/zh active Active
- 2014-10-31 BR BR112016025249-7A patent/BR112016025249B1/pt active IP Right Grant
- 2014-10-31 WO PCT/CN2014/090101 patent/WO2015165232A1/zh active Application Filing
- 2014-10-31 JP JP2016515649A patent/JP6198939B2/ja active Active
- 2014-10-31 KR KR1020157023175A patent/KR101736650B1/ko active IP Right Grant
- 2014-10-31 EP EP14880377.8A patent/EP2966566B1/en active Active
-
2015
- 2015-04-29 TW TW104113613A patent/TWI581188B/zh active
- 2015-09-16 US US14/856,195 patent/US9875118B2/en active Active
-
2017
- 2017-12-12 US US15/839,584 patent/US20180101394A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1296231A2 (en) * | 2001-06-15 | 2003-03-26 | Microsoft Corporation | System and method for building a target operating system from a source operating system |
CN1885264A (zh) * | 2005-06-21 | 2006-12-27 | 国际商业机器公司 | 用于嵌入式***的软件包构建方法和*** |
CN101297286A (zh) * | 2005-10-31 | 2008-10-29 | 微软公司 | 自动化设备驱动程序管理 |
CN1964525A (zh) * | 2005-11-09 | 2007-05-16 | 中兴通讯股份有限公司 | 一种智能加载手机硬件驱动程序的*** |
CN101102562A (zh) * | 2007-06-25 | 2008-01-09 | 嘉兴闻泰通讯科技有限公司 | 一种phs手机实现nor flash兼容的方法 |
CN101510180A (zh) * | 2009-03-27 | 2009-08-19 | 四川长虹电器股份有限公司 | 一种自动兼容多种型号flash的软件处理方法 |
CN101814280A (zh) * | 2009-12-01 | 2010-08-25 | 深圳市九洲电器有限公司 | 一种电子设备及其显示面板的驱动方法 |
CN102831178A (zh) * | 2012-07-30 | 2012-12-19 | 华为技术有限公司 | 多级存储的重部署方法及装置 |
CN103677921A (zh) * | 2013-12-13 | 2014-03-26 | Tcl康钛汽车信息服务(深圳)有限公司 | 一种Android***兼容wifi芯片的方法及*** |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886181A (zh) * | 2019-02-18 | 2019-06-14 | Oppo广东移动通信有限公司 | 指纹算法确定方法及相关设备 |
CN110362360A (zh) * | 2019-07-15 | 2019-10-22 | 惠州Tcl移动通信有限公司 | 驱动程序加载方法、装置、移动终端及存储介质 |
CN110990072A (zh) * | 2019-11-08 | 2020-04-10 | 杭州智控网络有限公司 | 价签屏幕多驱动动态加载方法 |
CN110990021A (zh) * | 2019-11-28 | 2020-04-10 | 杭州迪普科技股份有限公司 | 软件运行方法、装置、主控板及框式设备 |
CN113515315A (zh) * | 2021-07-01 | 2021-10-19 | 深圳创维-Rgb电子有限公司 | Wifi芯片驱动程序加载方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2015165232A1 (zh) | 2015-11-05 |
CN103942078A (zh) | 2014-07-23 |
CN103942078B (zh) | 2017-11-17 |
US20180101394A1 (en) | 2018-04-12 |
EP2966566A4 (en) | 2016-11-09 |
KR20160002685A (ko) | 2016-01-08 |
BR112016025249B1 (pt) | 2022-10-25 |
TWI581188B (zh) | 2017-05-01 |
US9875118B2 (en) | 2018-01-23 |
US20160004545A1 (en) | 2016-01-07 |
KR101736650B1 (ko) | 2017-05-16 |
TW201541353A (zh) | 2015-11-01 |
BR112016025249A2 (pt) | 2018-05-15 |
EP2966566B1 (en) | 2020-08-26 |
CN107729083B (zh) | 2021-02-12 |
JP6198939B2 (ja) | 2017-09-20 |
JP2016519385A (ja) | 2016-06-30 |
EP2966566A1 (en) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103942078B (zh) | 一种加载驱动程序的方法及嵌入式设备 | |
US11614922B2 (en) | Integration of learning models into a software development system | |
CN102971688B (zh) | 跨平台应用程序框架 | |
US20180349109A1 (en) | Integration of learning models into a software development system | |
US9323737B2 (en) | Generating an interactive page template based on setting a material type and a plurality of input and output signals for a mobile device | |
US10180825B2 (en) | System and method for using ubershader variants without preprocessing macros | |
US20130036196A1 (en) | Method and system for publishing template-based content | |
US20150347097A1 (en) | Adaptive user interfaces | |
CN104731401A (zh) | 图形输入友好功能选择的方法和装置 | |
US20190087160A1 (en) | System and method for creating domain specific language | |
CN105608152A (zh) | 一种网页资源异步加载的方法及装置 | |
CN103677528A (zh) | 一种信息处理方法和电子设备 | |
US10649743B2 (en) | Application developing method and system | |
KR102360646B1 (ko) | 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템 | |
CN110471828A (zh) | 一种操作***测试方法、装置及其设备 | |
CN104461636B (zh) | 一种皮肤资源加载方法及电子设备 | |
WO2016190645A1 (en) | Booting device and operating method thereof | |
US20170115850A1 (en) | Desktop display control method and device | |
US8587599B1 (en) | Asset server for shared hardware graphic data | |
CN107479899A (zh) | 文件处理方法和装置、存储介质及处理器 | |
US20080307446A1 (en) | Interoperable Managed and Unmanaged Code in a Document Environment | |
CN117075902A (zh) | 基于张量的编译方法、设备及其计算机可读存储介质 | |
Latture | Backdrop: An Exploration of Flutter | |
CN105631005A (zh) | 一种定制页面的方法及装置 | |
JP2008046730A (ja) | グラフィカル・ユーザ・インターフェース表示装置及びグラフィカル・ユーザ・インターフェース表示プログラム |
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 |