AM335x平台U-Boot移植与调试指南

需积分: 50 65 下载量 147 浏览量 更新于2024-09-10 3 收藏 160KB DOC 举报
"这篇文档详细介绍了在AM335x平台上移植和调试uboot的过程,主要涉及ARM Cortex-A8架构的AM335x处理器,以及uboot的启动流程和SPL的初始化任务。文档作者在项目实践中整理,旨在帮助使用AM335x的开发者进行uboot的移植工作。" 在ARM Cortex-A8架构的AM335x处理器上移植uboot是一项关键的系统级任务,这涉及到理解处理器的启动流程和uboot的角色。AM335x的启动过程分为四个主要步骤:ROM启动、SPL启动、u-boot启动以及Linux内核加载。 1. **ROM启动**:当设备上电后,内置的ROM代码负责初始化微处理器的基本功能,依据SYSBOOT引脚的配置初始化外设,并搜索SPL来执行。 2. **SPL启动**:Secondary Program Loader (SPL)的主要职责是初始化内部的PLL和外设时钟,设置RAM(如DDR3),激活串口、I2C等必要的外设,以及管理电源。完成这些初始化后,SPL将加载u-boot到RAM中并执行。 3. **u-boot启动**:u-boot提供了更为丰富的交互界面和支持更多的外设。它会继续配置外设,然后根据设定的参数从外部存储器加载Linux内核,并传递启动参数给内核。 在移植uboot的过程中,文档提到了一个名为`ubootmk.sh`的编译脚本,用于设置交叉编译环境和构建uboot。这个脚本指定了ARM架构和交叉编译器路径,清理旧的构建文件,然后配置和构建uboot。 对于非TI评估板的开发者,由于官方SDK是针对TI评估板设计的,因此需要对板载配置进行修改。文档建议通过条件编译来去除从EEPROM读取数据的部分,改而直接赋值启动参数,以适应不同的硬件版本。 这份文档提供了详细的移植步骤和注意事项,包括uboot源码的修改和编译,以及如何处理TI SDK与特定硬件的兼容性问题,对于在AM335x平台上进行uboot移植的开发者来说是一份宝贵的参考资料。