Mini2440移植u-boot-1.1.6详细教程:支持NandFlash与DM9000

5星 · 超过95%的资源 需积分: 22 37 下载量 4 浏览量 更新于2024-07-25 2 收藏 868KB DOC 举报
"uboot在mini2440上的移植是一个关键的过程,涉及到嵌入式Linux系统的初始化和硬件驱动的支持。本文将详细讲解u-boot-1.1.6如何在Mini2440开发板上进行移植,包括移植环境、移植步骤、功能特点以及u-boot的启动流程和目录结构。通过这个移植过程,开发人员可以更好地理解和配置针对特定硬件的u-boot,以实现从NandFlash和NorFlash启动,支持DM9000网卡以及Yaffs文件系统等功能。" 移植环境是基于Red Hat Enterprise Linux 6.3 (RHEL6.3),开发板为Mini2440,配备256MB Nand Flash和Kernel 2.6.30.4。使用的编译工具是arm-linux-gcc-4.3.2,而u-boot源码版本为u-boot-1.1.6。 移植步骤主要包括以下几个阶段: 1. **理解u-boot启动流程**:u-boot分为stage1和stage2两个阶段。stage1由位于`cpu/xxxx/start.S`的汇编代码组成,负责最基本的硬件初始化;stage2是`lib_xxxx/board.c`中的C代码,执行更复杂的初始化任务,如内存检测、设备初始化等。 2. **建立新开发板项目**:由于u-boot原生并不直接支持Mini2440,开发人员需要基于已有的类似硬件,如smdk2410的代码,来创建新的开发板项目。首先,复制smdk2410目录下的所有代码到新的mini2440目录,并将`smdk2410.c`重命名为`mini2440.c`。 3. **代码修改与编译**:接下来,根据Mini2440的具体硬件特性,对复制过来的代码进行相应的修改,以适应新的硬件配置。这可能包括时钟设置、中断处理、GPIO配置、NandFlash和NorFlash控制器的初始化,以及网络控制器DM9000的驱动程序等。完成修改后,进行编译和测试,确保u-boot能成功运行在Mini2440上。 4. **支持NandFlash和NorFlash启动**:移植过程中,需要确保u-boot能够识别和正确处理NandFlash和NorFlash,包括读取启动扇区,加载内核和设备树等。 5. **支持DM9000网卡**:对于DM9000网络控制器,需要编写或移植对应的驱动代码,以便在u-boot启动后能够检测和初始化网络接口,实现网络通信功能。 6. **支持Yaffs文件系统**:移植还需要对Yaffs文件系统的支持,以便在NandFlash上挂载和操作文件系统。 通过以上步骤,u-boot在Mini2440上的移植过程完成,具备了从不同存储介质启动、网络连接和文件系统管理的能力,这对于嵌入式Linux系统的开发和维护至关重要。在实际操作中,开发者可能还需要参考相关书籍、博客或其他技术文档,以解决遇到的具体问题。