基于AM335x的U-Boot/SPL 的CCS 调试
ssors.wiki.ti.com/index.php/AM335x_U-Boot_User%27s_Guide
1.2.3 可执行文件
经过编译后,就会生成可执行文件,也就是我们通常所说的image,这里会生成的image主要用AM335xLinux启动的两个阶段,MLO(SPL)和U-Boot。
这里,SPL生成的image在am335/U-Boot-am33x/am335x/spl中,
A. am335/U-Boot-am33x/MLO 负责AM335x启动的第一阶段。
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信息,可以找到各函数入口的地址
调试环境主要包含3个部分,仿真器,集成调试环境和开发板。下面将逐一介绍:
2.1 仿真器(emulator)
目前支持AM335x的仿真器的型号比较多,有XDS560v2,XDS510,XDS100v2, XDS100v3,等,比较常见的是XDS560v2和XDS100v2。
XDS560v2,性能好,速度快,具有trace功能,但是价格偏贵。 XDS100v2价格比较便宜。 其具备和XDS560v2一样的基本调试功能,只是XDS100v2的速度相对略慢。
XDS560v2和XDS100v2在PC机上的驱动(Windows,Linux)都已经包含在CCS中了,所以安装了最新版的CCS,就会安装相应的驱动。
2.2 集成开发环境
TI有自己的集成开发环境(IDE)CCS.目前最新的版本是基于Eclipse IDE架构的,界面新颖方便。
下载地址 http://processors.wiki.ti.com/index.php/Download_CCS。
CCS有Windows版本和Linux 版本,后面会在介绍调试过程中具体介绍两者的差异。
2.3 开发板
目前,针对不同的应用,TI发布了基于AM335x的多个开发板。其中BeagleBone,Starter Kit和ICE上配置了基于FT2232的xds100v2。而GPEVM和IDK上引出了CTI JTAG接口。
这里选择GP EVM和 Spectrum DigitalXDS560v2 作为调试平台。
3. CCS 调试Uboot/SPL的具体步骤
下面正式开始CCS的调试。调试的过程主要分为导入U-Boot/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-2011.09-psp04.06.00.08
如前面所提到,U-Boot 和SPL的源码在同一个文件夹的,通过不同的Makefile管理不同的编译宏来区分的。这里导入的是U-Boot的代码对应的Makefile,会相应的导入U-Boot对应的预编译选项,因为其包含了所有的代码。而对于SPL,也会相应的一起带入,只是在CCS中看到的代码的宏定义有些不对,但这个不影响调试。
3.2 CCS 连接 AM335x.
主要分成仿真器的连接,target连接和Debug配置等几部分:
3.2.1 [url=]仿真器的连接[/url]
对于 AM335x GP EVM选用Spectrum DigitalXDS560v2 的20 pin的接口板,连在baseboard的J2口上即可,注意pin脚的顺序,不要把JTAG 接口插反了。
对于beaglebone,StarterKit,ICE等,这些板子已经把XDS100v2 仿真器集成到板子上了,所以直接用usb线连到PC机上即可。
A. CCS的配置
CCS的配置主要包括Target的配置和连接两部分。
a. Target 配置
Target的配置包含两个部分,一个是仿真器(XDS560v2),另一个就是SOC(AM335x)。具体操作如下:
i. View -》 Target Configurations
ii. 点右键选择New Target Configuration.
iii. 新建一个叫做AM335_EVM的target.
iv. Connection中选择 Spectrum Digital XDS560V2 STM USB Emulator.
v. 对于XDS100v2 , 可以选择 Texas InstrumentsXDS100v2 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 SelectedConfiguration,连接成功后,可以得到下图
此时,PC 和仿真器以及仿真器和SOC的JTAG连接成功,但是ARM core还没有连上。从图中可以看到,
- 基于TI AM335x的智能家居安防系统网关解决方案(10-06)
- 这款防水无人机为何这么贵,技术难点在哪?(04-10)
- 基于赛灵思(Xilinx) FPGA的DisplayPort设计与实现(10-23)
- 视频接口HDMI需要担心DisplayPort或MHL阵营吗?(05-27)
- 基于DisplayPort的解决方案实现多屏显示(05-21)
- OPPO R9s Plus上手评测:性价比超高!(11-13)