S3C2440 U-boot 移植指南

4星 · 超过85%的资源 需积分: 9 5 下载量 74 浏览量 更新于2024-10-08 收藏 279KB PDF 举报
"基于S3C2440的UBOOT移植教程" 在本文档中,我们将深入探讨如何基于S3C2440处理器移植U-boot。U-boot是一款开源的Bootloader,它提供了加载操作系统内核、设备初始化、网络启动等功能,是嵌入式系统开发中的关键组件。 一、移植相关说明 移植背景: 该教程的产生是因为针对S3C2440的TQ2440开发板没有官方的U-boot移植文档。作者通过参考源代码和网络上的资料,完成了U-boot的移植过程,并编写了这份详细的文档,旨在帮助其他开发者理解和实施S3C2440上U-boot的移植。 移植环境: - 交叉编译器:使用的是crosstools_3.4.5_softfloat,这是一个用于生成ARM架构目标代码的工具链。 - CPU:S3C2440,这是一款广泛使用的ARM9处理器。 - SDRAM:256MB(16MBx16bit)的Hynix SDRAM。 - NorFlash:2MB的EN29LV160A,2048K x 8bit。 - NANDFlash:256MB x 8Bit的NAND Flash Memory。 - 网卡:DM9000。 移植源代码: 使用的是U-boot的1.1.6版本,可以从SourceForge网站上获取。 二、编译测试 在进行编译前,需要根据S3C2440板子的特点,对源代码进行适当的删减: - 删除与S3C2440无关的board目录,如除smdk2410外的其他目标板文件夹。 - 删除与ARM920T不匹配的cpu目录。 - 删除不必要的库文件目录,仅保留lib_arm和lib_generic。 - 删除与ARM架构不匹配的asm文件目录,仅保留asm-arm。 - 删除与smdk2410配置不符的include/configs目录下的头文件。 然后,建立新的目标板系统并进行编译测试: - 将board/smdk2410目录重命名为TANG2440。 - 修改smdk2410.c为TANG2440.c,以适应新的板型。 - 更新Makefile中的COBJS,指定编译TANG2440.oflash.o。 后续章节会详细介绍如何增加对S3C2440的支持,配置NorFlash,添加NANDFlash读写驱动,支持DM9000网卡,实现NANDFlash启动,引导Linux内核以及支持Yaffs2文件系统。这些步骤涵盖了从硬件驱动到系统启动的全过程,对于理解U-boot的移植至关重要。 通过这个教程,开发者不仅可以了解如何在S3C2440上移植U-boot,还能学习到Bootloader的基本工作原理和嵌入式系统的初始化流程,这对于进一步的嵌入式系统开发具有很大的帮助。