好文档 - 专业文书写作范文服务资料分享网站

基于mini2440平台的U-Boot移植方法①

天下 分享 时间: 加入收藏 我要投稿 点赞

基于mini2440平台的U-Boot移植方法①

王冰瑶

【摘 要】摘 要: 研究了以 ARM9系列的 S3C2440处理器为核心的 mini2440平台, 来移植 U-Boot的方法. 首先根据mini2440平台的硬件资源, 对U-Boot源代码进行修改, 然后对修改后的源代码进行编译, 将生成u-boot.bin文件下载到mini2440开发板上运行, 并对U-Boot进行功能测试. 测试结果表明, U-Boot成功地在开发板上运行, 并能实现它的功能. 此移植方法对使用S3C2440处理器进行嵌入式系统设计及U-Boot在其他处理器上的移植具有参考价值. 【期刊名称】计算机系统应用 【年(卷),期】2013(000)008 【总页数】4

【关键词】关键词: U-Boot; ARM; S3C2440; 嵌入式; BootLoader

Linux操作系统因其具有开放源代码、易于移植、资源丰富等优点, 使得它在嵌入式领域中越来越流行.对于嵌入式Linux系统而言, 其软件系统的主要组成部分有BootLoader、内核、根文件系统和系统应用程序[1].而 BootLoader作为系统加电后运行的第一个程序, 对嵌入式系统的后继开发工作十分重要, 所以它是嵌入式系统开发的重要环节. 在嵌入式领域, BootLoader的实现严重依赖于具体的硬件平台, 因此想要创建一个通用的BootLoader几乎是不可能的. 但是, 仍然可以归纳出一些通用的方法, 用来设计我们所需要的BootLoader. 同时 ARM 微处理器因为具有高性能、低功耗、价格低等优点, 使其在 32位嵌入式处理器的市场份额已经超过 70%[2]. 目前 U-Boot是嵌入式行业主流的BootLoader, 业内对U-Boot在S3C2410、S3C44B0等 ARM 处理器上的移

植技术已经非常成熟, 可是在S3C2440处理器上的移植研究做的很少, 所以在使用S3C2440处理器进行嵌入式系统设计时, 工作变得非常困难, 于是此次研究选用使用率非常高的 mini2440开发板来进行U-Boot的移植工作.

1 mini2440开发板简介

mini2440开发板是由友善之臂公司开发研制, 它采用三星 S3C2440为微处理器, 并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性, mini2440的 PCB采用沉金工艺的四层板设计,专业等长布线, 保证关键信号的信号完整性, 是目前国内性价比最高的开发板[3].

由于U-Boot的移植依赖于具体的硬件资源, 所以必须掌握开发板上的硬件配置, mini2440开发板的硬件配置如表1所示[3].

2 U-Boot简介

U-Boot的全称为Universal Boot Loader, 它是完全免费开源的, 支持 PowerPC、ARM、MIPS、XScale等多种系列的嵌入式处理器; 同时支持 VxWorks、NetBSD、QNX、RTEMS、Linux等多种嵌入式操作系统的引导. 就目前来看, U-Boot对PowerPC系列的处理器支持最为丰富, 对Linux的支持最为完善.

2.1 U-Boot源代码的目录结构

要想对U-Boot进行移植, 首先需要对其源代码的结构以及功能进行详细的分析. 此次研究与移植工作基于u-boot-1.1.6进行, 对其源码解压后会在u-boot-1.1.6目录下生成它的源代码. 其目录结构主要分为与体系结构有关的目录以及与体系结构无关的代码目录, 前者主要包含board目录和CPU目录, 移植U-Boot的工作主要就集中在对这些目录里面特定文件的修改[4]. 移植U-Boot过

程中比较重要的目录如表2所示. 2.2 U-Boot的启动流程

大部分BootLoader的启动过程可以分为stage1和stage2, U-Boot也不例外. 在第一阶段用到的文件通常都是依赖于cpu体系结构的, 而且用汇编语言来实现,从而达到短小精悍的目的. 而第二阶段的代码通常用C语言编写, 以实现更复杂的功能, 并且使代码具有更好的可读性和移植性. U-Boot的启动流程图如图 1所示.

3 U-Boot的移植

3.1 建立交叉编译环境

交叉编译工具链是嵌入式开发必备的基础工具.本文使用的交叉编译工具链版本是 arm-linux-gcc-3.4.5. 首先将交叉编译工具链解压到/usr/local/arm 目录下; 然后修改 PATH环境变量, 使其包含交叉编译器的路径; 最后输入 arm-linux-gcc-v以检查交叉编译工具链是否安装成功. 3.2 U-Boot移植的具体操作方法

在对U-boot进行移植之前, 首先要对U-boot已经支持的开发板进行分析, 找出硬件资源最为接近的开发板代码, 然后以其为基础进行移植[5]. board目录下每一个子目录都包含一个u-boot支持的硬件开发板的支持代码, 其中有 smdk2410子目录, 但没有smdk2440目录, 这表明u-boot支持S3C2410,但不支持S3C2440. S3C2440与S3C2410非常相似, 因此可以用S3C2410的支持代码作为基础为S3C2440移植u-boot.

需要说明的是, 在移植过程中需要修改的文件较多, 并且有的文件还需要重写, 但是因为篇幅有限, 所以本文并未给出全部的修改代码. 大体移植步骤如下.

基于mini2440平台的U-Boot移植方法①

基于mini2440平台的U-Boot移植方法①王冰瑶【摘要】摘要:研究了以ARM9系列的S3C2440处理器为核心的mini2440平台,来移植U-Boot的方法.首先根据mini2440平台的硬件资源,对U-Boot源代码进行修改,然后对修改后的源代码进行编译,将生成u-boot.bin文件下载到min
推荐度:
点击下载文档文档为doc格式
12is072r664vbt01gdv99bpag891im0041d
领取福利

微信扫码领取福利

微信扫码分享