- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AM335x的-BootSPL的CCS调试
基于AM335x的U-Boot/SPL的CCS 调试在基于Linux的AM335x软件开发流程中,第一步就是U-Boot/SPL(Second Program Loader)的移植。在移植中遇到问题比较常见,而U-Boot/SPL的调试手段比较简陋,不便于迅速找到问题。利用仿真器可以单步调试的特点,就可以迅速定位到出问题的代码所在位置,加速移植的调试过程。本文主要介绍如何用CCS+emulator调试基于AM335x的U-Boot/SPL。AM335x Linux启动过程以及U-Boot/SPL调试代码的准备1.1 AM335x Linux的启动过程AM335x Linux的启动主要包括ROM,SPL,U-Boot和kernel四个启动步骤:ROM codeROM code是固化在芯片内部的代码,当上电时序正确,而且晶振等芯片启动所需的条件都具备时,AM335x会从ROM code开始运行。ROM code首先会读取sys_boot引脚上的配置,以确定存放SPL的存储器,或者可以获取SPL的外设。具体可以参考AM335x technical reference manual中的第26章 Initialization。ROM code会从相应的地方读取/获取SPL,并运行SPL。SPLSPL和U-Boot是bootloader的两个阶段。这里分为两个阶段的原因是, 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会进一步对芯片进行配置,主要包括以下几个方面以完成其主要职责:配置ARM core。主要包括对中断向量表,cache,MMU等的配置。配置时钟系统,主要是PLL等。这个是配置各个功能模块的基础。配置UART,timer等。主要用于输出必要的调试信息,或者提供些时钟工具。配置I2C和PMIC。这个主要是为了配置电源管理芯片。配置DDR。配置U-Boot所在的存储器或者外设。完成配置后,SPL会读取U-Boot,并运行U-Boot。U-BootU-Boot主要的工作就是正确加载Kernel。和SPL类似,U-Boot也是要加载下一个阶段的image,但是U-Boot提供了更多外设的支持和更多的调试工具。所以,U-Boot也要进行各个模块的配置,上述SPL配置的部分,除了DDR外,U-Boot也会根据需求重新配置(这里重置主要是U-Boot是一个开源工程,其要兼容某些特殊的芯片,从而需要做重载)。此外,U-Boot也会对网口,SD卡等根据需求进行配置。U-Boot和SPL的工作流程比有一点是有较大差异的,就是会对自身进行一次重载。这个在后面介绍U-Boot调试的时候,会有具体介绍。完成配置后,U-Boot会从相应的存储器或者外设读取Kernel,并传递参数给kernel,运行kernel。KernelKernel运行起来就代表Linux运行起来了,表明了启动过程的结束。U-Boot/SPL 调试代码的准备1.2.1下载U-Boot/SPL代码U-Boot/SPL的代码在一个包里面,通过编译宏来分别编译。目前TI U-Boot/SPL 代码发布主要有两个渠道,具体如下通过GIT开源的方式发布:git:///git/projects/U-Boot-am33x.git?可以获取最新的代码,包含了最新的bug的修复。通过TI的官网的EZSDK发布:/dsps/dsps_public_sw/am_bu/sdk/AM335xSDK/latest/index_FDS.htmlEZSDK是正式发布的软件包,经过全面测试,性能稳定,U-Boot/SPL在board-support 目录中。可以选择EZSDK作为开发的基础代码。当有问题时,可到GIT上查找最新的代码是否有bug fix。1.2.2 U-Boot/SPL的编译。为了便于用CCS进行调试,在编译上需要注意两点,其一,是要加入调试信息,就是为了加入symbol等信息;其二,去掉编译器的性能优化编译选项,这个主要是因为,优化后的代码执行顺序相对C代码会有调整。针对这两点,在Uboot/SPL中,需要在config.mk中进行修改:在CFLAG 和 AFLAG中加入调试编译选项,从而加入调试信息:278 ALL_AFLAGS = $(AFLAGS) $(AFLAGS_$(BCURD
您可能关注的文档
- 在国际贸易中,全认证是必须进行的。在设计、生产、使用.PDF
- 在平稳继承中求在立意转向中创新.ppt
- 在死亡的山涧,羊的飞渡似横空架起的一道生命的彩虹,.ppt
- 在第一线的工作员的必备宝典.PDF
- 地下水开采对河流量衰减的影响分析.PDF
- 地方债在上交所行业务介绍.ppt
- 地理科学专业本人才培养方案.PDF
- 地质勘查成果填注意事项(2013年度).ppt
- 地质工程专业培计划(2009版).doc
- 地铁16号线(北安-西苑段)年底亮相,站名开始公示.PDF
- ASUS华硕MotherboardMicroATX MotherboardsH110M-A DP User's manual (English)说明书用户手册.pdf
- Intel英特尔英特尔架构英特尔® FSP®.pdf
- DELIXI德力西CDMNEZ-3P塑料外壳式断路器说明书 光华20240719.pdf
- ASUS华硕MotherboardMicroATX MotherboardsPRIME B360M-A CSMPRIME B360M-A 法文版使用手册.pdf
- ASUS华硕MotherboardMicroATX MotherboardsPRIME B650M-R-CSMPRIME B650M-R 英文版使用手册.pdf
- Intel英特尔Intel® Quark™ SE 微控制器 C1000 调试操作:用户指南.pdf
- Intel英特尔Intel® Quark™ 微控制器软件接口引导加载程序:用户指南.pdf
- ASUS华硕MotherboardATX MotherboardsPRIME Z790-P WIFI D4-CSMPRIME Z790-P WIFI D4 繁体中文版使用手册.pdf
- 精编广东省揭阳市企业人力资源管理师之四级人力资源管理师考试真题通用.docx
- 精编广东省云浮市企业人力资源管理师之一级人力资源管理师考试精选题库含答案(基础题).docx
最近下载
- 外研版(2024)Unit 5 Reading课件 2024-2025学年七年级英语上册.pptx VIP
- 糖尿病诊疗指南2024.pptx VIP
- 【新教材】北师大版(2024)七年级上册数学第四章 基本平面图形 综合素质评价测试卷(Word版,含答案).docx
- 2024年在线网课学习课堂《Entrepreneur Growth Plan(辽宁大学 )》单元测试考核答案.pdf
- 公安专业知识 易混易错知识点法律和公专(讲义+笔记)(辅警系统班).pdf
- 核心素养下的大单元教学培训心得(通用).pptx
- 二年级上册美术教案与反思-第6课 下雨了 ▏人美版 .pdf VIP
- 2024年华医网继续教育临床静脉用药质量管理与风险防范答案.docx VIP
- NAD T757 A&V 环绕声接收器用户手册.pdf
- 新能源汽车的品牌推广.pptx
文档评论(0)