• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 20
    • 下载费用:30 金币  

    重庆时时彩欲出几率: 一种加载驱动程序的方法及嵌入式设备.pdf

    关 键 词:
    一种 加载 驱动程序 方法 嵌入式 设备
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201410182979.9

    申请日:

    2014.04.30

    公开号:

    CN103942078A

    公开日:

    2014.07.23

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20140430|||公开
    IPC分类号: G06F9/445 主分类号: G06F9/445
    申请人: 华为技术有限公司
    发明人: 王大能; 钟光华; 袁方
    地址: 518129 广东省深圳市龙岗区坂田华为总部办公楼
    优先权:
    专利代理机构: 北京同达信恒知识产权代理有限公司 11291 代理人: 黄志华
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410182979.9

    授权公告号:

    ||||||

    法律状态公告日:

    2017.11.17|||2014.08.20|||2014.07.23

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明涉及计算机技术领域,公开了一种加载驱动程序的方法及设备,该方法包括:确定嵌入式设备包含的器件对应的型号标识,查找与该器件对应的型号标识相关联的驱动程序;将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动;在该方案中,为待加载驱动程序的器件加载驱动程序时,根据该待加载驱动程序的器件的型号标识去查找相关联的驱动程序,进而将该相关联的驱动程序进行加载即可,不需要去多个器件的驱动程序组合中去查找,也不需要生成多个器件的驱动程序对应的标识的组合,因此,降低了所消耗的时间,提高了加载效率。

    权利要求书

    权利要求书
    1.  一种加载驱动程序的方法,其特征在于,包括:
    确定嵌入式设备包含的器件对应的型号标识;所述器件为待加载驱动程序的器件;
    查找与所述器件对应的型号标识相关联的驱动程序;
    将查找到的驱动程序加载至所述嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动。

    2.  如权利要求1所述的方法,其特征在于,查找与所述器件对应的型号标识相关联的驱动程序,具体包括:
    通过所述嵌入式设备的最小运行系统镜像查找与所述器件对应的型号标识相关联的驱动程序,其中,所述最小运行系统镜像用于所述嵌入式设备的启动、业务功能的运行,及所述嵌入式设备所包含的器件的驱动程序的加载。

    3.  如权利要求2所述的方法,其特征在于,在查找与所述器件对应的型号标识相关联的驱动程序之前,还包括:
    生成所述嵌入式设备的最小运行系统镜像。

    4.  如权利要求3所述的方法,其特征在于,生成所述嵌入式设备的最小运行系统镜像,包括:
    将基于所述嵌入式设备的业务功能开发的原始代码编译生成初始最小运行系统镜像,所述初始最小运行系统镜像包括可执行文件及可执行连接格式的文件;所述原始代码是用于实现所述嵌入式设备的业务功能;
    从所述初始最小运行系统镜像所包括的可执行连接格式的文件中抽取符号表;
    根据所述符号表生成C文件,并将生成的C文件添加至所述原始代码;
    将添加所述C文件后的所述原始代码进行编译,得到所述嵌入式设备的最小运行系统镜像。

    5.  如权利要求1-4任一项所述的方法,其特征在于,在查找与所述器件 对应的型号标识相关联的驱动程序之前,还包括:
    确定与所述器件同类型的器件分别的型号标识,以及所述同类型的器件分别对应的驱动程序;其中,所述同类型的器件为与所述器件具有相同属性或功能的器件;
    存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系。

    6.  如权利要求5所述的方法,其特征在于,存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系,具体包括:
    将每一个所述同类型器件的驱动程序编译为预设格式的文件,所述预设格式的文件具有重定位的属性;
    将所述预设格式的文件,按照预设规则进行存储,并获取存储所述预设格式的文件的逻辑地址;
    存储所述任意一型号标识与获取得到的逻辑地址的对应关系。

    7.  如权利要求6所述的方法,其特征在于,所述预设格式的文件的地址字段为初始预设值;在将所述预设格式的文件,按照预设规则进行存储之后,所述方法还包括:
    将所述预设格式的文件的地址字段中的所述初始预设值更改为所述逻辑地址。

    8.  如权利要求6或7所述的方法,其特征在于,查找与所述器件对应的型号标识相关联的驱动程序,具体包括:
    从存储的关联关系中确定与所述器件对应的型号标识对应的逻辑地址;
    将确定的逻辑地址中存储的预设格式的文件,作为与所述器件对应的型号标识相关联的驱动程序。

    9.  如权利要求7或8所述的方法,其特征在于,将查找到的驱动程序加载至所述嵌入式设备的内存,具体包括:
    确定所述驱动程序加载至所述嵌入式设备的内存后的物理地址;
    将所述驱动程序中的地址字段从逻辑地址修改为所述物理地址。

    10.  如权利要求2-9任一项所述的方法,其特征在于,将查找到的驱动程序加载至所述嵌入式设备的内存,包括:
    采用动态加载的方式通过所述最小运行系统镜像将查找到的驱动程序加载至所述嵌入式设备的内存。

    11.  如权利要求10所述的方法,其特征在于,采用动态加载的方式通过所述最小运行系统镜像将查找到的驱动程序加载至所述嵌入式设备的内存,具体包括:
    利用所述最小运行系统镜像中的函数和全局变量,将查找的驱动程序拷贝至所述嵌入式设备的内存;
    基于所述最小运行系统镜像采用函数指针的形式,调用所述查找到的驱动程序中的接口函数,将拷贝至所述嵌入式设备的内存的驱动程序进行链接。

    12.  一种加载驱动程序的嵌入式设备,其特征在于,包括:
    确定单元,用于确定嵌入式设备包含的器件对应的型号标识;所述器件为待加载驱动程序的器件;
    查找单元,用于查找与所述器件对应的型号标识相关联的驱动程序;
    加载单元,用于将查找到的驱动程序加载至所述嵌入式设备的内存,并控制加载至所述嵌入式设备的内存的驱动程序对所述器件进行驱动。

    13.  如权利要求12所述的嵌入式设备,其特征在于,所述查找单元具体用于:
    通过所述嵌入式设备的最小运行系统镜像查找与所述器件对应的型号标识相关联的驱动程序,其中,所述最小运行系统镜像用于所述嵌入式设备的启动、业务功能的运行,及所述嵌入式设备所包含的器件的驱动程序的加载。

    14.  如权利要求13所述的嵌入式设备,其特征在于,还包括生成单元,所述生成单元用于生成所述嵌入式设备的最小运行系统镜像。

    15.  如权利要求14所述的嵌入式设备,其特征在于,所述生成单元包括:
    编译???,用于将基于所述嵌入式设备的业务功能开发的原始代码编译生成初始最小运行系统镜像,所述初始最小运行系统镜像包括可执行文件及可执行连接格式的文件;所述原始代码是用于实现所述嵌入式设备的业务功能;
    抽取???,用于从所述初始最小运行系统镜像所包括的可执行连接格式的文件中抽取符号表;根据所述符号表生成C文件,并将生成的C文件添加至所述原始代码;
    所述编译??榛褂糜?,将添加所述C文件后的所述原始代码进行编译,得到所述嵌入式设备的最小运行系统镜像。

    16.  如权利要求12-15任一项所述的嵌入式设备,其特征在于,还包括存储单元,所述存储单元具体用于:
    确定与所述器件同类型的器件分别的型号标识,以及所述同类型的器件分别对应的驱动程序;其中,所述同类型的器件为与所述器件具有相同属性或功能的器件;
    存储确定出的每一个与所述器件同类型的器件的型号标识与该同类型器件的驱动程序的关联关系。

    17.  如权利要求16所述的嵌入式设备,其特征在于,所述存储单元具体用于:
    将每一个所述同类型器件的驱动程序编译为预设格式的文件,所述预设格式的文件具有重定位的属性;将所述预设格式的文件,按照预设规则进行存储,并获取存储所述预设格式的文件的逻辑地址;存储所述任意一型号标识与获取得到的逻辑地址的对应关系。

    18.  如权利要求17所述的嵌入式设备,其特征在于,所述预设格式的文件的地址字段为初始预设值,所述存储单元还用于:
    在将所述预设格式的文件,按照预设规则进行存储之后,将所述预设格式的文件的地址字段中的所述初始预设值更改为所述逻辑地址。

    19.  如权利要求17或18所述的嵌入式设备,其特征在于,所述查找单元具体用于:
    从存储的关联关系中确定与所述器件对应的型号标识对应的逻辑地址;并将确定的逻辑地址中存储的预设格式的文件,作为与所述器件对应的型号标识相关联的驱动程序。

    20.  如权利要求18或19所述的嵌入式设备,其特征在于,所述加载单元具体用于:
    确定所述驱动程序加载至所述嵌入式设备的内存后的物理地址,并将所述驱动程序中的地址字段从逻辑地址修改为所述物理地址。

    21.  如权利要求13-20任一项所述的嵌入式设备,其特征在于,所述加载单元具体用于:
    利用所述最小运行系统镜像中的函数和全局变量,将查找的驱动程序拷贝至所述嵌入式设备的内存;
    基于所述最小运行系统镜像采用函数指针的形式,调用所述查找到的驱动程序中的接口函数,将拷贝至所述嵌入式设备的内存的驱动程序进行链接。

    说明书

    说明书一种加载驱动程序的方法及嵌入式设备
    技术领域
    本发明涉及计算机技术领域,特别涉及一种加载驱动程序的方法及嵌入式设备。
    背景技术
    随着通信技术的迅速发展,计算机领域经历了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 and Linkable 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 DataRate,双倍速率同步动态随机存储器)中。
    在具体实现过程中,可以采用如下方式:
    通过链接脚本,可以对待加载的驱动程序的数据和函数配置段属性,在动态加载过程中,分析对待加载驱动程序的数据和函数配置段属性,进而将待加载的驱动程序分散加载到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中的可执行代码,用于实现前述实施例的其他步骤和功能,在此不再赘述。
    综上所述,本发明实施例中,提供一种加载驱动程序的方法,该方法中:确定嵌入式设备包含的器件对应的型号标识;器件为待加载驱动程序的器件;查找与器件对应的型号标识相关联的驱动程序;将查找到的驱动程序加载至嵌入式设备的内存,并控制加载至嵌入式设备的内存的驱动程序对器件进行驱动,在该方案中,为待加载驱动程序的器件加载驱动程序时,根据该待加载驱动程序的器件的型号标识去查找相关联的驱动程序,进而将该相关联的驱动程序进行加载即可,不需要去多个器件的驱动程序的组合中去查找,也不需要生成多个器件的驱动程序对应的标识的组合,因此,降低了所消耗的时间,提高了加载效率。
    本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合??商峁┱庑┘扑慊绦蛑噶畹酵ㄓ眉扑慊?、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
    这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
    这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
    尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
    显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

    关于本文
    本文标题:一种加载驱动程序的方法及嵌入式设备.pdf
    链接地址://www.4mum.com.cn/p-6143634.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 北京pk10前三基本走势 快速时时 后二直选复试7码稳赚技巧 1分钟一开百盈快三规律 五分快三规律破解稳赚 快乐时时开奖记录 北京pk10官网下注app 财神计划软件 时时彩组六720注号码 彩票网买大小技巧 吉林时时一天多少期 双色球开奖结果双今天 福彩3d稳赚不赔的技巧 时时彩七码方法 高频彩计划手机软件 3d预测胆码