Linux内核镜像数据支持多种CPU的实现方法及装置制造方法及图纸

技术编号:3804028 阅读:411 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种Linux内核镜像数据支持多种CPU的实现方法及装置,其中方法包括:预先设置存储索引信息,所述存储索引信息用于查找到多种CPU能够共用的Linux内核镜像数据;预设每种CPU的识别信息;读取待运行的CPU的识别信息,对该CPU做识别处理;并根据所述存储索引信息,查找到适用于该CPU的Linux内核镜像数据,且在该CPU上运行所述Linux内核镜像数据。本发明专利技术提供的技术方案有效解决现有技术中存在的Linux内核镜像数据难以支持多种CPU,难以适应嵌入式设备硬件差异的多样性和复杂性的技术问题,让ARM平台的Linux嵌入式系统具有更好的移植性和硬件兼容性。

【技术实现步骤摘要】

本专利技术涉及信息
,尤其涉及一种Linux内核镜像支持多种CPU的实现方 法及装置。
技术介绍
通常,ARM(Advanced RISC Machines)平台的嵌入式 Linux 内核(Kernel)数据在 编译完成后,得到的Linux内核镜象数据只适用于一种CPU硬件平台,难以适用于多种CPU。专利技术人发现现有Linux内核镜象数据难以适用于硬件平台的接口电路及外围器件的不同的 应用场景;对于具有相同ARM核的CPU,不同厂商制造的ARM CPU,其初始化过程不同,现有 Linux内核镜象同样难以适用。因此,现有Linux内核镜象数据由于通常针对特定的CPU设置而成,而难以应对嵌 入式设备硬件差异的多样性和复杂性,也使得现有ARM Linux嵌入式设备如智能手机、个人 数码助理(PDA)等,难以像个人计算机(PC机)一样,为用户提高统一的用户操作系统,一 些情况下给用户造成不便,用户体验不高。并且若该CPU相关环境如硬件电路或外围器件 发生改变,则该Linux内核镜像数据将不再适用。
技术实现思路
本专利技术提供一种Linux内核镜像数据支持多种CPU的实现方法,解决现有技术中 存在的Linux内核镜像数据难以支持多种CPU的技术问题。为解决上述技术问题,本专利技术提供一种ARM Linux支持多种CPU的实现方法,包 括预先设置存储索引信息,所述存储索引信息用于查找到多种CPU能够共用的 Linux内核镜像数据;预设每种CPU的识别信息;读取待运行的CPU的识别信息,对该CPU做识别处理;并根据所述存储索引信息, 查找到适用于该CPU的Linux内核镜像数据,且在该CPU上运行所述Linux内核镜像数据。其中,所述对该CPU做识别处理可包括根据该CPU的识别信息,确定用于存放待运行于该CPU上的Linux内核镜像数据 的解压目标地址;根据该CPU的识别信息,获取与所运行的该CPU相匹配的初始化数据。其中,所述Linux内核镜像数据携带CPU驱动模块;所述对该CPU做识别处理还包 括所述CPU驱动模块根据该CPU的识别信息,判断是否与该CPU相匹配,,若是,则执 行在该CPU上运行所述Linux内核镜像数据的操作,否则,结束流程。其中,所述预先设置存储索引信息可包括在Linux内核源代码树中包含各个独立ARM硬件平台的代码目录区设置通用ARM 平台目录;所述通用ARM硬件平台目录用于存放通用ARM硬件平台所需要的Linux内核镜 像数据;在Linux内核源代码树中包含各独立ARM CPU平台头文件的目录区设置通用ARM 平台头文件目录;所述ARM平台头文件目录用于存放所有需要支持的ARM CPU通用头文 件;在所述通用ARM平台头文件目录中,根据不同的ARM CPU设置用于存放该ARM CPU 的头文件的目录。其中,所述预设存储索引信息还包括在所述通用ARM平台目录中,根据不同的CPU设置用于保存与各ARMCPU相关的初始化及核心代码的目录;设置各ARM CPU平台都需要使用且与各ARM CPU平台相关的公用变量、函数及宏定义等指针化或变量化。为解决上述技术问题,本专利技术还提供一种Linux内核镜像数据支持多种CPU的实 现装置,其包括存储单元,用于存储多种CPU能够共用的Linux内核镜像数据;识别处理单元,用于读取待运行的CPU的识别信息,对该CPU做识别处理;并根据 预设的用于查找存储单元内的所述Linux内核镜像数据的存储索引信息,查找到适用于该 CPU的Linux内核镜像数据,且在该CPU上运行所述Linux内核镜像数据。其中,所述识别处理单元包括地址选择单元和初始化单元;所述地址选择单元,用于根据该CPU的识别信息,确定用于存放待运行于该CPU上 的Linux内核镜像数据的解压目标地址;所述存储单元,还存储与各种CPU相关的初始化数据;所述初始化单元,根据该CPU的识别信息以及所述存储索引信息,从所述存储单 元内获取与所运行的该CPU相匹配的初始化数据。优选地,所述识别处理单元还包括CPU驱动模块;用于根据该CPU的识别信息,判 断是否与该CPU相匹配,得到判断结果;执行单元,用于根据所述判断结果为是,执行在该CPU上运行所述Linux内核镜像 数据的操作,否则,结束操作。相比较现有技术,本专利技术提供的技术方案存在以下有益技术效果本专利技术提供的技术方案,通过设置存储索引信息,提供多种CPU能够共用的Linux 内核镜像数据;并且通过对不同的CPU做识别处理,获取到适用于该CPU的Linux内核镜像 数据,从而实现ARM平台的Linux内核镜像数据对多种CPU的支持,有效解决现有技术中存 在的Linux内核镜像数据难以支持多种CPU,难以适应嵌入式设备硬件差异的多样性和复 杂性的技术问题,让ARM平台的Linux嵌入式系统具有更好的移植性和硬件兼容性;并能够 实现为用户提供统一的操作系统,提高用户体验。本专利技术提供ARM Linux内核的平台移植技术,移植完成的Linux内核实用于以 ARM9及更高版本的ARM核的CPU嵌入式Linux (非uCLinux)系统应用设备,如PDA、智能手 机及其它各种应用Linux系统的设备。附图说明图1是现有Linux内核源代码树与各ARM CPU平台之间的关系示意图;图2是本专利技术的实施例中ARM Linux支持多种CPU的实现方法流程图;图3是本专利技术的实施例中Linux内核源代码树与各ARM CPU平台之间的关系示意 图;图4是本专利技术的实施例中对CPU的识别处理流程图;图5是本专利技术的实施例中ARM Linux支持多种CPU的实现装置。具体实施例方式本专利技术提供使ARM Linux能够适用于多种CPU的技术方案,从而有效提高Linux 内核镜像的兼容性。专利技术人首先分析现有Linux内核镜像技术如下现有ARM Linux源代码以开发板为依据组织,不同开发板在Linux内核源代码树 中有相对独立的源代码支持,在将Linux源代码编译成二进制内核镜象时,只有与该开发 板相关的代码参与编译,而其它ARM平台的代码并不参与编译过程。每种开发板一般是为 某一型号的CPU而专门开发的,它保证编译得到的内核镜像在该开发板上的正常工作,但 不保证该内核镜象能在其它的硬件平台上也能正常工作,甚至不保证为这套开发板维护的 内核代码树能成功编译出其它开发板的内核镜像。与开发板相关的头文件及部分关健的公用代码也以开发板为依据分类,不同的开 发板为内核环境定义不同的参数值,使编译得到的内核镜象只适用于该开发板。参见图1, 图1是现有Linux内核源代码树与各ARM CPU平台之间的关系示意图。图1中,Linux内 核支持的ARM开发板与ARM CPU成一一对应关系,这样的结构使得编译出的内核镜象与ARM CPU也是成一一对应关系,难以达到同一内核镜象同时支持多种CPU的目的。下面结合附图对本专利技术的技术方案做详细说明。参见图2,图2是本专利技术的实施例中ARM Linux支持多种CPU的实现方法流程图, 该流程可包括步骤步骤201、预先设置存储索引信息,所述存储索引信息用于查找到多种CPU能够共 用的Linux内核镜像数据;预设每种CPU的识别信息。本专利技术的实施例中,设置存储索引信息主要包本文档来自技高网...

【技术保护点】
一种Linux内核镜像数据支持多种CPU的实现方法,其特征在于,包括:预先设置存储索引信息,所述存储索引信息用于查找到多种CPU能够共用的Linux内核镜像数据;预设每种CPU的识别信息;读取待运行的CPU的识别信息,对该CPU做识别处理;并根据所述存储索引信息,查找到适用于该CPU的Linux内核镜像数据,且在该CPU上运行所述Linux内核镜像数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:李健诚
申请(专利权)人:广州盛华信息技术有限公司
类型:发明
国别省市:81[中国|广州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1