U-B00T移植教程:Norflash到Nandflash逐步详解

需积分: 10 2 下载量 108 浏览量 更新于2024-07-23 收藏 198KB PDF 举报
本文档详细记录了U-BOOT移植的过程,分为三个阶段:从Norflash启动的U-BOOT、支持Nandflash驱动的U-BOOT以及最终能够从Nandflash启动的U-BOOT。作者以SMDK2410开发板为例,一步步引导读者理解和执行移植。 首先,移植从Norflash启动的U-BOOT是最基础的阶段,目标是创建一个能在Norflash上运行的简单版本。在这个阶段,开发者需要检查默认的smdk2410_config配置是否适用于他们的硬件,并尝试编译U-BOOT 1.1.4。在编译过程中,可能会遇到两个常见错误: 1. 错误一:当编译器报错"cc1: Invalid option 'abi=apcs-gnu'",这通常是由于Makefile中对于交叉编译器的选择不正确。解决方法是定位到cpu/arm920t目录下的config.mk文件,将`PLATform_CPPFLAGS += $(call cc-option,-mapcs-32,-mabi=apcs-gnu)`更改为`PLATform_CPPFLAGS += $(call cc-option,-mapcs-32, $(call cc-option,-mabi=apcs-gnu,))`,以适应不同的编译器设置。 2. 错误二:另一个错误可能涉及Makefile中缺少构建特定目标的规则。解决这类问题需要根据具体错误信息来查找和修复相应的Makefile条目。 第二阶段,添加Nandflash驱动支持,允许在U-BOOT命令行下对Nandflash进行操作,但U-BOOT仍然无法从Nandflash启动,只能在Norflash加载。这个阶段可能涉及到驱动程序的集成和配置,确保硬件与软件之间的兼容性。 最后阶段,目标是使U-BOOT能够从Nandflash启动并运行。这包括配置启动加载器以指向Nandflash,以及处理可能的硬件和固件差异。这个阶段的挑战可能更大,因为它涉及到整个系统启动流程的改变。 通过这三个阶段的逐步推进,移植者不仅能够深入理解U-BOOT的工作原理,还能学习如何处理移植过程中的各种问题。这样的分步指导有助于降低问题定位的复杂性,便于快速解决问题。整个移植过程强调了实践中的细节调整和对硬件特性的理解,这对于从事嵌入式系统的开发者来说是非常有价值的参考资料。