一种嵌入式软件兼容硬件的方法

文档序号:9597709阅读:186来源:国知局
一种嵌入式软件兼容硬件的方法
【技术领域】
[0001]本发明属于嵌入式系统软件和硬件领域,尤其涉及一种嵌入式软件兼容硬件的方法。
【背景技术】
[0002]嵌入式系统根据用户需求以及设计变化会出现设备硬件核心部分一致,但外围器件和应用存在差异的情况,比如:某些数据通信设备使用的CPU、内存一致,但交换芯片根据用户要求以及成本限制可能是不同厂家的,Flash芯片处于成本考虑也有可能不同类型的(比如串行或者并行);对于这些硬件差异需要软件兼容,否则不同型号的设备需要使用不同的嵌入式软件,这样不方便后续维护升级。
[0003]通常软件兼容硬件的方法是读取硬件特征,比如硬件设计时预留型号等特征信息或者软件扫描检测相关器件的型号以确定加载正确的驱动和兼容代码。但实际应用中,由于各种原因,硬件设计时可能未预留型号特征;软件扫描器件比较困难或者过于复杂、效率较低。
[0004]基于以上情况,需要通过其他方式实现嵌入式软件对设备硬件差异的兼容。

【发明内容】

[0005]本发明要解决的技术问题是,针对现有嵌入式系统存在不能通过读取设备硬件特征或扫描器件的情况下兼容硬件差异的问题,提供了一种嵌入式软件兼容硬件的方法。
[0006]本发明为解决上述技术问题所采用的技术方案是:
[0007]—种嵌入式软件兼容硬件的方法,包括以下步骤:
[0008]1)嵌入式软件包括引导程序BOOT文件和应用程序APP文件,不同型号设备出厂时烧写不同的BOOT文件和统一的APP文件(对于不同的硬件设备制作不同的BOOT文件,使用时保证不同的硬件设备使用同一个APP文件,以便于维护,如远程升级等);
[0009]2)在BOOT文件中标准化定义设备硬件差异信息(加入设备硬件特征,以便BOOT文件和APP文件能正确识别);
[0010]3)通过BOOT文件将定义好的设备硬件差异信息传递给其引导的APP文件;
[0011 ] 4) APP文件在初始化阶段正确解析BOOT文件传递的硬件差异信息,根据设备硬件特征完成对设备硬件差异信息的兼容适配处理,实现不同硬件的兼容。
[0012]按上述方案,所述硬件差异信息包括Flash类型、Flash大小、交换芯片类型、GP10映射、IIC地址。
[0013]按上述方案,所述步骤4)中兼容适配处理具体为:根据Flash类型加载串行或并行Flash驱动、根据Flash大小对Flash进行分区、根据交换芯片类型加载对应的驱动、根据GP10映射完成GP10初始化、根据IIC地址完成驱动初始化和应用。
[0014]本发明的核心思想是:Β00Τ文件出厂后不会修改,因此不必一致,设备硬件核心部分如CPU、内存一致,但其他器件或应用比如Flash、IIC、GP10应用等存在差异,嵌入式软件通过BOOT文件将设备硬件差异信息传入APP文件,由APP文件在初始化阶段适配硬件实现兼容这些差异,以保证不同设备可以使用同一个APP文件,不同型号设备出厂时烧写特定的BOOT文件和统一的APP文件,后续维护升级使用统一的APP文件。
[0015]本发明产生的有益效果是:对于设备硬件核心部分如CPU、内存一致,但其他器件或应用比如Flash、IIC、GP10应用等存在差异的情况下,通过本发明方法无需软件检测硬件特征就可以屏蔽硬件差异,实现同一软件兼容不同硬件设备,便于后续升级、维护。
【附图说明】
[0016]图1为本发明实施例的系统框图;
[0017]图2为本发明实施例的流程图;
[0018]图3为本发明实施例的应用框图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
[0020]图1为本发明的系统框图,BOOT文件将硬件差异信息存入系统内存指定地址,APP文件在启动后从内存中指定地址取出硬件差异信息,即完成BOOT文件和APP文件间信息传递的过程,存入的硬件差异信息包括:Flash类型、Flash大小、交换芯片类型、GP10映射、IIC地址等。比如对设备A的Flash是8M,设备B的Flash是16M,那么需要将这样的硬件差异信息传入的APP文件,传入参数可以是“Flash Size:8M”、“Flash Size:16M”之类的定义。
[0021 ]图2为本发明的流程图,系统上电,BOOT文件启动,然后BOOT文件存放硬件差异信息到系统内存指定地址,之后引导APP文件启动,APP文件启动初始阶段完成与外围器件无关的初始化后从系统内存指定地址取出硬件差异信息,再根据这些硬件差异信息对硬件进行适配,比如:根据Flash类型加载串行或并行Flash驱动、根据Flash大小对Flash进行分区、根据交换芯片类型加载对应的驱动、根据GP10映射完成GP10初始化、根据IIC地址完成驱动初始化和应用,最后APP文件进入启动后续阶段,完成与硬件无关(或者适配后)的初始化。
[0022]图3为本发明的应用框图,某嵌入式系统有A、B、C三款不同型号,外围硬件有差异,生产时使用不同的BOOT版本B00T_A、B00T_B、B00T_C,在BOOT阶段适配各自硬件,生产用的APP文件使用同一版本Verl ;出厂后,各型号设备BOOT文件保持不变,APP文件可以根据需要升级到Ver2,这样就可以实现同一 APP文件兼容不同硬件,便于维护。
[0023]本发明并不仅仅限于说明书和实施方式中所列运用,对于本领域的技术人员来说,根据本发明作出各种相应的更改和变型,相应的更改和变型都属于本发明权利要求的保护范围。
【主权项】
1.一种嵌入式软件兼容硬件的方法,其特征在于,包括以下步骤: 1)嵌入式软件包括引导程序BOOT文件和应用程序APP文件,不同型号设备出厂时烧写不同的BOOT文件和统一的APP文件; 2)在BOOT文件中标准化定义设备硬件差异信息; 3)通过BOOT文件将定义好的设备硬件差异信息传递给其引导的APP文件; 4)APP文件在初始化阶段正确解析BOOT文件传递的硬件差异信息,根据设备硬件特征完成对设备硬件差异信息的兼容适配处理,实现不同硬件的兼容。2.根据权利要求1所述的嵌入式软件兼容硬件的方法,其特征在于,所述硬件差异信息包括Flash类型、Flash大小、交换芯片类型、GP10映射、IIC地址。3.根据权利要求2所述的嵌入式软件兼容硬件的方法,其特征在于,所述步骤4)中兼容适配处理具体为:根据Flash类型加载串行或并行Flash驱动、根据Flash大小对Flash进行分区、根据交换芯片类型加载对应的驱动、根据GP10映射完成GP10初始化、根据IIC地址完成驱动初始化和应用。
【专利摘要】本发明公开了一种嵌入式软件兼容硬件的方法,其特征在于,包括以下步骤:1)嵌入式软件包括引导程序BOOT文件和应用程序APP文件,不同型号设备出厂时烧写不同的BOOT文件和统一的APP文件;2)在BOOT文件中标准化定义设备硬件差异信息;3)通过BOOT文件将定义好的设备硬件差异信息传递给其引导的APP文件;4)APP文件在初始化阶段正确解析BOOT文件传递的硬件差异信息,根据设备硬件特征完成对设备硬件差异信息的兼容适配处理,实现不同硬件的兼容。对于设备硬件核心部分如CPU、内存一致,但其他器件或应用比如Flash、IIC、GPIO应用等存在差异的情况下,通过本发明方法无需软件检测硬件特征就可以屏蔽硬件差异,实现同一软件兼容不同硬件设备,便于后续升级、维护。
【IPC分类】G06F9/445
【公开号】CN105354071
【申请号】CN201510933925
【发明人】刘宁, 程国平, 唐俊, 郑直
【申请人】武汉长光科技有限公司
【公开日】2016年2月24日
【申请日】2015年12月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1