FriendlyARM2440平台Uboot移植详解

需积分: 9 4 下载量 111 浏览量 更新于2024-07-30 收藏 186KB DOC 举报
"Uboot移植到 FriendlyARM2440 平台的方法,包括Makefile修改、YAFFS2文件系统支持、uImage加载位置、串口速度调整等关键步骤" 在进行Uboot移植时,首先遇到的问题是Makefile的修改。在 FriendlyARM2440 这个平台上,默认的配置可能会导致low_init.S文件无法正确加载,因为它被放置在超过4KB的位置,而NAND flash启动时会将前4KB的代码复制到芯片内部。因此,你需要修改Makefile以确保low_init.S位于4KB以内,以便成功执行启动流程。 其次,移植过程中需添加对YAFFS2文件系统的支持。YAFFS2是一种适用于NAND闪存的文件系统,它允许读写操作。当写入文件映像时,必须确保写入长度与映像大小完全匹配,否则可能会导致坏块。若出现坏块,通常需要通过底层擦除来恢复。 第三,内核映像通常以uImage格式加载。在这个例子中,内核应加载到0x31000000地址,而不是0x30008000。这是因为0x31000000是uImage的标准加载地址,而且需要mkimage工具来创建兼容的uImage文件。 此外,可能需要调整speed.c文件中的串口速率设置。如果不正确,串口通信可能会出现乱码。这通常涉及到配置串口波特率,确保与开发板和主机之间的通信顺畅。 移植Uboot到新的开发板,如byd2440,通常涉及以下步骤: 1. 获取U-Boot源码,例如1.3.1版本,确保源码适用于你的硬件平台。在这个例子中,虽然1.3.1版本尚未直接支持S3C2440,但可以通过修改2410的相关文件来适应2440。 2. 在U-Boot源码目录中,修改Makefile以创建新的开发板配置。这里创建了名为"tekkaman2440_config"的配置,基于sbc2410x_config进行修改,适应2440的特性。 3. 使用提供的工具(如MKCONFIG)创建新配置,并根据需要调整其他相关配置文件,如BoardConfig.mk或board/目录下的文件,以匹配你的硬件。 4. 编译新配置,检查编译过程是否顺利,解决可能出现的错误或警告。 5. 将编译生成的Uboot二进制文件烧录到开发板的NAND flash中,然后通过JTAG或串口等手段进行调试和测试,确保Uboot能够正常启动并提供基本功能。 6. 如果一切顺利,接下来可以进行Linux内核的编译和移植,以及根文件系统的构建,最终实现整个系统的运行。 以上就是Uboot移植到FriendlyARM2440平台的基本步骤和注意事项,每一步都需要仔细处理,确保移植的成功。在整个过程中,不断查阅文档、社区论坛和源码注释将是解决问题的关键。