基于AM335x的U-Boot-SPL 的CCS 调试.doc
《基于AM335x的U-Boot-SPL 的CCS 调试.doc》由会员分享,可在线阅读,更多相关《基于AM335x的U-Boot-SPL 的CCS 调试.doc(4页珍藏版)》请在三一文库上搜索。
1、基于AM335x的U-Boot/SPL 的CCS 调试在基于Linux的AM335x软件开发流程中,第一步就是U-Boot/SPL(SecondProgram Loader)的移植。在移植中遇到问题比较常见,而U-Boot/SPL的调试手段比较简陋,不便于迅速找到问题。利用仿真器可以单步调试的特点,就可以迅速定位到出问题的代码所在位置,加速移植的调试过程。本文主要介绍如何用CCS+emulator调试基于AM335x的U-Boot/SPL。1. AM335x Linux启动过程以及U-Boot/SPL调试代码的准备1.1 url=AM335x Linux/url的启动过程AM335x Linu
2、x的启动主要包括ROM,SPL, U-Boot 和kernel四个启动步骤:A. ROM codeROM code是固化在芯片内部的代码,当上电时序正确,而且晶振等芯片启动所需的条件都具备时,AM335x会从ROM code开始运行。ROM code首先会读取sys_boot引脚上的配置,以确定存放SPL的存储器,或者可以获取SPL的外设。具体可以参考AM335x technical reference manual中的第26章 IniTIalizaTIon。ROM code会从相应的地方读取/获取SPL,并运行SPL。B. SPLSPL 和U-Boot 是bootloader的两个阶段。这里
3、分为两个阶段的原因是, ROM code中不会配置DDR,时钟等最小系统,所以ROM code只能把bootloader加载到片上SRAM中,而片上SRAM对成本影响很大,所以通常很小,例如在AM335x上只有64K,不足够放下整个U-Boot,所以将U-Boot分成两部分,SPL和U-Boot。SPL主要的职责就是初始化DDR,时钟等最小系统,以读取U-Boot,并加载到DDR中。具体来看,SPL 由ROM code加载到片上SRAM的起始位置,也就是0x402F0400。SPL会进一步对芯片进行配置,主要包括以下几个方面以完成其主要职责:a. 配置ARM core。 主要包括对中断向量表,
4、cache,MMU等的配置。b. 配置时钟系统,主要是PLL等。这个是配置各个功能模块的基础。c. 配置UART,TImer等。主要用于输出必要的调试信息,或者提供些时钟工具。d. 配置I2C和PMIC。这个主要是为了配置电源管理芯片。e. 配置DDR。f. 配置 U-Boot所在的存储器或者外设。完成配置后,SPL会读取U-Boot,并运行U-Boot。C. U-BootU-Boot 主要的工作就是正确加载Kernel。和SPL类似,U-Boot也是要加载下一个阶段的image,但是U-Boot提供了更多外设的支持和更多的调试工具。所以,U-Boot也要进行各个模块的配置,上述SPL配置的部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于AM335x的U-Boot-SPL 的CCS 调试 基于 AM335x Boot SPL CCS
链接地址:https://www.31doc.com/p-3409158.html