ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:616.60KB ,
资源ID:3123299      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3123299.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于AM33x的UBootSPL的CCS调试.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于AM33x的UBootSPL的CCS调试.docx

1、基于AM33x的UBootSPL的CCS调试基于AM335x的U-Boot/SPL 的CCS 调试 在基于Linux的AM335x软件开发流程中,第一步确实是U-Boot/SPL(Second Program Loader)的移植。在移植中碰到问题比较常见,而U-Boot/SPL的调试手腕比较简陋,不便于迅速找到问题。利用仿真器能够单步调试的特点,就能够迅速定位到出问题的代码所在位置,加速移植的调试进程。本文要紧介绍如何用CCS+emulator调试基于AM335x的U-Boot/SPL。 1.AM335x Linux启动进程和U-Boot/SPL调试代码的预备1.1 AM335x Linux

2、的启动进程AM335x Linux的启动要紧包括ROM,SPL, U-Boot 和kernel四个启动步骤:A.ROM codeROM code是固化在芯片内部的代码,当上电时序正确,而且晶振等芯片启动所需的条件都具有时,AM335x会从ROM code开始运行。ROM code第一会读取sys_boot引脚上的配置,以确信寄存SPL的存储器,或能够获取SPL的外设。具体能够参考AM335x 中的第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。 要紧包括对中断向量表,cache,MMU

4、等的配置。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配置的部份, 除DDR外,U-Boot也

5、会依照需求从头配置(那个地址重置主若是U-Boot是一个开源工程,其要兼容某些特殊的芯片,从而需要做重载)。另外,U-Boot也会对网口,SD卡等依照需求进行配置。U-Boot 和SPL的工作流程比有一点是有较大不同的,确实是会对自身进行一次重载。那个在后面介绍U-Boot调试的时候,会有具体介绍。完成配置后,U-Boot 会从相应的存储器或外设读取Kernel,并传递参数给kernel,运行kernel。D.KernelKernel运行起来就代表Linux运行起来了,说明了启动进程的终止。1.2U-Boot/SPL 调试代码的预备1.2.1下载 U-Boot/SPL 代码U-Boot/SPL

6、的代码在一个包里面,通过编译宏来别离编译。目前TI U-Boot/SPL 代码发布要紧有两个渠道,具体如下A.通过GIT开源的方式发布:git:/arago-project.org/git/projects/U-Boot-am33x.git能够获取最新的代码,包括了最新的bug的修复。B.通过TI的官网的EZSDK发布:EZSDK是正式发布的软件包,通过全面测试,性能稳固,U-Boot/SPL在board-support 目录中。能够选择EZSDK作为开发的基础代码。当有问题时, 可到GIT上查找最新的代码是不是有bug fix。1.2.2 U-Boot/SPL的编译。为了便于用CCS进行调试

7、, 在编译上需要注意两点,其一,是要加入调试信息,确实是为了加入symbol等信息;其二,去掉编译器的性能优化编译选项,那个主若是因为,优化后的代码执行顺序相对C代码会有调整。针对这两点,在Uboot/SPL中,需要在config.mk中进行修改:A.在CFLAG 和 AFLAG中加入调试编译选项,从而加入调试信息:278 ALL_AFLAGS = $(AFLAGS) $(AFLAGS_$(BCURDIR)/$(F) $(AFLAGS_$(BCURDIR) g279 ALL_CFLAGS = $(CFLAGS) $(CFLAGS_$(BCURDIR)/$(F) $(CFLAGS_$(BCURD

8、IR) gB.去掉 CFLAG中的编译选项, -O2(U-Boot中默许是-O2)61 HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer编译进程能够参考1.2.3 可执行文件通过编译后,就会生成可执行文件,也确实是咱们通常所说的image,那个地址会生成的image要紧用AM335x Linux启动的两个时期,MLO(SPL)和U-Boot。那个地址,SPL生成的image在am335/U-Boot-am33x/am335x/spl中,A.am335/U-Boot-am33x/MLO 负责AM335x启动的第一时期。

9、B.U-Boot-spl 作为带有调试信息的image,能够在CCS顶用作导入调试信息。C.U-Boot-spl.bin 包括有调试信息,是调试时需要的image。D.U-Boot-spl.map 那个文件里面存储了spl的memory map信息,能够找到各函数入口的地址。U-Boot生成的image在U-Boot-am33x/am335x中,具体如下:A.U-Boot.img负责AM335x启动的第二时期B.U-Boot 包括有调试信息,属于ELF格式,是调试时需要的image。C.U-Boot.map那个文件里面存储了U-Boot的memory map信息,能够找到各函数入口的地址2.调

10、试环境的预备调试环境要紧包括3个部份,仿真器,集成调试环境和开发板。下面将一一介绍:2.1 仿真器(emulator)目前支持AM335x的仿真器的型号比较多,有XDS560v2, XDS510,XDS100v2, XDS100v3,等,比较常见的是XDS560v2和XDS100v2。 XDS560v2,性能好,速度快,具有trace功能,可是价钱偏贵。 XDS100v2价钱比较廉价。其具有和XDS560v2 一样的大体调试功能,只是XDS100v2的速度相对略慢。 XDS560v2和XDS100v2在PC机上的驱动(Windows, Linux)都已经包括在CCS中了,因此安装了最新版的CC

11、S,就会安装相应的驱动。2.2 集成开发环境TI有自己的集成开发环境(IDE)CCS.目前最新的版本是基于Eclipse IDE架构的,界面新颖方便。 下载地址。 CCS有Windows版本和Linux 版本,后面会在介绍调试进程中具体介绍二者的不同。2.3 开发板目前,针对不同的应用,TI发布了基于AM335x的多个开发板。其中,和上配置了基于FT2232的xds100v2。而和上引出了接口。那个地址选择GP EVM 和 Spectrum Digital XDS560v2 作为调试平台。3 CCS 调试Uboot/SPL的具体步骤 下面正式开始CCS的调试。调试的进程要紧分为导入U-Boot

12、/SPL 工程, CCS 连接AM335x,代码调试等几个部份。3.1 导入CCS代码。 在CCS中,Menu File - Import 选择 Makefile 方式导入,如以下图所示:在ezsdk中,U-Boot/SPL所对应的Makefile的具体途径如下:/home/sitara/ti-sdk-am335x-evm-05.05.00.00/board-support/U-Boot-2020.09-psp04.06.00.08如前面所提到,U-Boot 和SPL的源码在同一个文件夹的,通过不同的Makefile治理不同的编译宏来区分的。那个地址导入的是U-Boot的代码对应的Makefi

13、le,会相应的导入U-Boot对应的预编译选项,因为其包括了所有的代码。而关于SPL,也会相应的一路带入,只是在CCS中看到的代码的宏概念有些不对,但那个不阻碍调试。3.2CCS 连接 AM335x.要紧分成仿真器的连接,target连接和Debug配置等几部份:3.2.1 仿真器的连接 关于 AM335x GP EVM选用Spectrum Digital XDS560v2 的20 pin的接口板,连在baseboard的J2口上即可,注意pin脚的顺序,不要把JTAG 接口插反了。 关于beaglebone,StarterKit,ICE等,这些板子已经把XDS100v2 仿真器集成到板子上了

14、,因此直接用usb线连到PC机上即可。A.CCS的配置 CCS的配置要紧包括Target的配置和连接两部份。a.Target 配置Target的配置包括两个部份,一个是仿真器(XDS560v2),另一个确实是SOC(AM335x)。具体操作如下:i.View - Target Configurationsii.点右键选择New Target Configuration.iii.新建一个叫做AM335_EVM的target.iv.Connection当选择 Spectrum Digital XDS560V2 STM USB Emulator.v.关于XDS100v2 , 能够选择 Texas I

15、nstruments XDS100v2 USB Emulator.vi.在Board or Device 当选择AM335x.vii.点击Save 保留。viii.点击Test Connection 看是不是能够正常连接。配置target成功后,会看到如下界面 3.2.2 Target 连接A.右键选中Target Configurations中已配置好的target,AM335x_EVM.ccxml, 在右键菜单当选择Launch Selected Configuration,连接成功后,能够取得以下图 现在,PC 和仿真器和仿真器和SOC的JTAG连接成功,可是ARM core尚未连上。从图中能够看到,有多个core的配置选项,由于U-Boot/SPL, Linux 运行在ARM coretex-A8 core上,那个地址只关注ARM core。B.在Debug窗口中,右键点击CortxA8 core, 选择Connect Target. 连接成功后,如以下图所示:现在,已经成功连上AM335x的Cortex-A8 core了。3.2.3 Debug配置 那个地址的debug配置,是对emulator连上core后行为的设置。 能够通过鼠标右键点击pr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1