### Linux系统u-boot移植手册知识点概述 #### 一、u-boot简介与移植目的 u-boot是一种广泛应用于嵌入式系统的引导加载程序,它能够支持多种处理器架构和操作系统内核,如Linux、FreeBSD等。u-boot的主要功能是在系统启动时初始化硬件设备、执行基本的硬件检测、设置内存区域以及加载操作系统内核到RAM中运行。对于初学者来说,学习如何移植u-boot至特定的硬件平台是非常重要的一步,因为它不仅能够加深对嵌入式系统工作的理解,还能够提高解决问题的能力。 #### 二、移植环境搭建 **1. 虚拟机环境配置** - **软件选择**:使用Vmware 6.5或7.11版本配合Ubuntu 8.04或10.04作为操作系统的虚拟机环境。 - **网络配置**:配置好虚拟机内的Ubuntu系统,确保可以通过TFTP服务进行文件传输。 - **交叉编译器准备**:采用arm-linux-gcc-4.3.2版本的交叉编译器,支持EABI标准。通过命令`sudo tar zxvf arm-linux-gcc-4.3.2.tgz`进行解压,并设置环境变量`export PATH=$PATH:/usr/local/arm/4.3.2/bin/`。 **2. 开发板配置** - **硬件选择**:YS2440开发板,具备128MB NAND Flash存储。 - **NAND Flash型号**:三星K9F1GU08A,页面大小为2KB。 **3. u-boot版本选择** - **版本号**:u-boot-2010-03。 - **下载地址**:通过官方FTP服务器`ftp://ftp.denx.de/pub/u-boot/`下载。 #### 三、建立开发板目录及测试编译环境 **1. 创建开发板目录** - 在`/home/linux`目录下创建`ys2440`和`ys2440/uboot`目录,用于存放移植过程中所需的文件。 - 将u-boot-2010.03源码解压到`ys2440/uboot`目录下。 **2. 复制与修改文件** - 在`board`目录下创建`cedn`目录,并将`samsung/smdk2410`目录复制到`cedn`目录下,重命名为`smdk2440`。 - 将`smdk2440/smdk2410.c`文件重命名为`smdk2440.c`。 - 在`include/configs`目录下,复制`smdk2410.h`文件为`smdk2440.h`。 **3. 修改顶层Makefile文件** - 在顶层Makefile文件中添加以下内容以支持新创建的开发板: ``` smdk2440_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2440 cedn s3c24x0 ``` - 其中`@(_config=)`部分的处理是根据Makefile规则,用于去除目标中的`_config`字符串。 #### 四、修改U-Boot源码支持SMDK2440 接下来的部分详细介绍了如何逐步修改U-Boot源码以支持SMDK2440开发板。这包括修改启动脚本、添加NAND Flash读取函数、调整低级初始化文件等步骤。 **1. 修改启动脚本/start.s** - 目的是让U-Boot能够从NAND Flash启动。 - 文件路径:`/CPU/ARM920T/START.S`。 **2. 添加NAND Flash读取函数** - 在`BOARD/CEDN/SMDK2440/`目录下创建或修改`NAND_READ.C`文件,实现`NAND_READ_LL`函数。 **3. 修改低级初始化文件/lowlevel_init.s** - 文件路径:`BOARD/CEDN/SMDK2440/LOWLEVEL_INIT.S`。 - 主要是为了初始化开发板上的硬件资源,如设置GPIO端口、初始化时钟等。 **4. 修改SMDK2440.C文件** - 文件路径:`BOARD/CEDN/SMDK2440/SMDK2440.C`。 - 进一步完善针对SMDK2440开发板的功能,如内存配置、设备初始化等。 **5. 修改配置头文件/configs/smdk2440.h** - 文件路径:`INCLUDE/CONFIGS/SMDK2440.H`。 - 设置与开发板相关的配置参数,如内存布局、启动方式等。 **6. 添加编译选项/config_s3c2440** - 在相关文件中添加编译选项`CONFIG_S3C2440`,确保支持S3C2440处理器的特性被编译进入U-Boot。 **7. 修改NAND驱动文件/s3c2410_nand.c** - 文件路径:`DRIVERS/MTD/NAND/S3C2410_NAND.C`。 - 针对SMDK2440开发板上的NAND Flash控制器进行适配。 **8. 修改NAND命令处理文件/cmd_nand.c** - 文件路径:`COMMON/CMD_NAND.C`。 - 实现与NAND Flash交互的命令,如读写操作等。 通过以上步骤,可以有效地将u-boot-2010.03移植到YS2440开发板上,并支持从NAND Flash启动。这对于嵌入式开发人员来说是一个非常有价值的实践过程,有助于深入理解嵌入式系统的启动流程和底层硬件控制机制。
- 粉丝: 3
- 资源: 48
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助