### u-boot-1.1.6移植到QQ2440V3详解 #### 一、移植背景与准备工作 在开始u-boot移植之前,我们首先需要了解移植的基本环境和工具。 **开发板:** 友善之臂QQ2440V3 - **操作系统:** redhat 9.0 - **交叉编译器:** arm-linux-gcc 3.4.1(可从友善之臂官网下载预编译版本) - **u-boot版本:** u-boot-1.1.6 - **下载地址:** ftp://ftp.denx.de/pub/u-boot/ #### 二、u-boot简介 u-boot是通用的嵌入式设备启动程序,它提供了丰富的功能来支持不同类型的处理器和硬件平台。对于移植u-boot到新的硬件平台上来说,理解u-boot的工作原理至关重要。 **u-boot工作分为两个阶段:** - **第一阶段 (stage 1):** - **硬件初始化:** 关闭看门狗、中断管理、CPU时钟和速度设置、RAM初始化等。 - **准备RAM空间:** 为加载u-boot第二阶段代码预留足够的RAM空间。 - **复制第二阶段代码:** 将u-boot第二阶段代码从非易失性存储器复制到RAM中。 - **设置堆栈:** 配置堆栈用于第二阶段执行。 - **跳转到入口点:** 跳转到u-boot第二阶段的起始地址。 - **第二阶段 (stage 2):** - **硬件设备初始化:** 包括串口、网络接口、闪存等。 - **内存映射检测:** 检测系统内存的可用性和布局。 - **加载内存映像:** 从闪存读取内存映像和根文件系统到RAM。 - **设置内核启动参数:** 为Linux内核设置必要的启动选项。 - **启动内核:** 调用Linux内核开始系统的启动流程。 #### 三、移植步骤 下面详细介绍如何将u-boot-1.1.6移植到友善之臂QQ2440V3开发板上。 **第一步:创建开发板相关目录和文件** 1. **创建工作目录:** `mkdir work` 2. **解压u-boot源码:** `tar xzvf u-boot-1.1.6.tar.gz` 3. **进入u-boot目录:** `cd u-boot-1.1.6` 4. **创建新开发板目录:** `mkdir board/hb2440` 5. **复制模板文件:** `cp -r board/smdk2410 board/hb2440` 6. **重命名文件:** `mv board/hb2440/smdk2410.c board/hb2440/hb2440.c` 和 `cp include/configs/smdk2410.h include/configs/hb2440.h` 7. **修改Makefile:** 添加新的配置项以支持hb2440开发板。 **第二步:修改SDRAM配置** - **修改时钟配置:** 在`board/hb2440/lowlevel_init.S`中,将`#define REFCNT 1113`更改为`0x4f4`以设置HCLK为100MHz。 **第三步:设置时钟频率** - **修改时钟函数:** 在`board/hb2440/hb2440.c`的`board_init`函数以及`cpu/arm920t/s3c24x0/speed.c`中调整时钟函数,确保FCLK:HCLK:PCLK=1:4:8且UPLL为48MHz。 - **更新头文件:** 在`include/configs/hb2440.h`中将`"SMDK2410"`更改为`"HB2440"`并在`include/s3c24x0.h`中添加`S3C24X0_REG32CAMDIVN`。 **第四步:支持AM29LV800闪存** - **修改配置:** 在`include/configs/hb2440.h`中取消`#define CONFIG_AMD_LV800 1`的注释,并注释掉`#define CONFIG_AMD_LV400 1`。 **第五步:增加对xmodem协议的支持** - **修改代码:** 编辑`common/cmd_load.c`文件,以支持通过串口使用xmodem协议下载文件。 **第六步:支持CS8900网卡芯片** - **设置环境参数:** 可以通过串口终端手动设置IP地址、MAC地址、服务器IP等参数。 - **修改代码:** 在`board/hb2440/lowlevel_init.S`中更新相应的参数。 #### 四、总结 本文详细介绍了如何将u-boot-1.1.6移植到友善之臂QQ2440V3开发板上的全过程。从创建初始目录结构到逐步配置各个硬件组件,每一步都经过仔细考虑和详细解释。通过这个过程,不仅能够成功地实现u-boot的移植,而且还能深入了解嵌入式系统开发的关键技术。这对于学习和掌握嵌入式开发具有重要意义。
剩余6页未读,继续阅读
- 粉丝: 5
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助