新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AM335x的U-Boot/SPL 的CCS 調(diào)試

基于AM335x的U-Boot/SPL 的CCS 調(diào)試

作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

XDS560v2和XDS100v2在PC機(jī)上的驅(qū)動(dòng)(Windows,Linux)都已經(jīng)包含在中了,所以安裝了最新版的,就會(huì)安裝相應(yīng)的驅(qū)動(dòng)。

2.2 集成開發(fā)環(huán)境

TI有自己的集成開發(fā)環(huán)境(IDE).目前最新的版本是基于Eclipse IDE架構(gòu)的,界面新穎方便。

下載地址 http://processors.wiki.ti.com/index.php/Download_CCS。

CCS有Windows版本和Linux 版本,后面會(huì)在介紹調(diào)試過程中具體介紹兩者的差異。

2.3 開發(fā)板

目前,針對(duì)不同的應(yīng)用,TI發(fā)布了基于的多個(gè)開發(fā)板。其中BeagleBone,Starter Kit和ICE上配置了基于FT2232的xds100v2。而GPEVM和IDK上引出了CTI JTAG接口。

這里選擇GP EVM和 Spectrum DigitalXDS560v2 作為調(diào)試平臺(tái)。

3. CCS 調(diào)試Uboot/SPL的具體步驟

下面正式開始CCS的調(diào)試。調(diào)試的過程主要分為導(dǎo)入U(xiǎn)-Boot/SPL 工程, CCS 連接,代碼調(diào)試等幾個(gè)部分。

3.1 導(dǎo)入CCS代碼

在CCS中, Menu File -》 Import … 選擇 Makefile 方式導(dǎo)入,如下圖所示:

import

在ezsdk中,U-Boot/SPL所對(duì)應(yīng)的Makefile的具體路徑如下:

/home/sitara/ti-sdk-am335x-evm-05.05.00.00/board-support/U-Boot-2011.09-psp04.06.00.08

如前面所提到,U-Boot 和SPL的源碼在同一個(gè)文件夾的,通過不同的Makefile管理不同的編譯宏來區(qū)分的。這里導(dǎo)入的是U-Boot的代碼對(duì)應(yīng)的Makefile,會(huì)相應(yīng)的導(dǎo)入U(xiǎn)-Boot對(duì)應(yīng)的預(yù)編譯選項(xiàng),因?yàn)槠浒怂械拇a。而對(duì)于SPL,也會(huì)相應(yīng)的一起帶入,只是在CCS中看到的代碼的宏定義有些不對(duì),但這個(gè)不影響調(diào)試。

3.2 CCS 連接 .

主要分成仿真器的連接,target連接和Debug配置等幾部分:

3.2.1 [url=]仿真器的連接[/url]

對(duì)于 AM335x GP EVM選用Spectrum DigitalXDS560v2 的20 pin的接口板,連在baseboard的J2口上即可,注意pin腳的順序,不要把JTAG 接口插反了。

對(duì)于beaglebone,StarterKit,ICE等,這些板子已經(jīng)把XDS100v2 仿真器集成到板子上了,所以直接用usb線連到PC機(jī)上即可。

A. CCS的配置

CCS的配置主要包括Target的配置和連接兩部分。

a. Target 配置

Target的配置包含兩個(gè)部分,一個(gè)是仿真器(XDS560v2),另一個(gè)就是SOC(AM335x)。具體操作如下:

i. View -》 Target Configurations

ii. 點(diǎn)右鍵選擇New Target Configuration.

iii. 新建一個(gè)叫做AM335_EVM的target.

iv. Connection中選擇 Spectrum Digital XDS560V2 STM USB Emulator.

v. 對(duì)于XDS100v2 , 可以選擇 Texas InstrumentsXDS100v2 USB Emulator.

vi. 在Board or Device 中選擇AM335x.

vii. 點(diǎn)擊Save 保存。

viii. 點(diǎn)擊Test Connection 看是否能夠正常連接。

配置target成功后,會(huì)看到如下界面

06

3.2.2 Target 連接

A. 右鍵選中Target Configurations中已配置好的target,AM335x_EVM.ccxml, 在右鍵菜單中選擇Launch SelectedConfiguration,連接成功后,可以得到下圖

05

此時(shí),PC 和仿真器以及仿真器和SOC的JTAG連接成功,但是ARM core還沒有連上。從圖中可以看到,有多個(gè)core的配置選項(xiàng),由于U-Boot/SPL,Linux 運(yùn)行在ARM coretex-A8 core上,這里只關(guān)注ARM core。

B. 在Debug窗口中,右鍵點(diǎn)擊CortxA8 core, 選擇Connect Target. 連接成功后,如下圖所示:

D

此時(shí),已經(jīng)成功連上AM335x的Cortex-A8 core了。

3.2.3 Debug配置

這里的debug配置,是對(duì)emulator連上core后行為的設(shè)置。 可以通過鼠標(biāo)右鍵點(diǎn)擊properties,得到以下界面:

03

在該頁配置中,在調(diào)試過程需要調(diào)整的就是Auto RunOptions,可以根據(jù)需要設(shè)置,當(dāng)加載了image后,core自動(dòng)運(yùn)行到指定的symbol,并且被JTAG接口所停住

調(diào)試U-Boot/SPL的方式有兩種,主要涉及如何加載image:一種是把image通過JTAG下載到片上RAM或者DDR中,然后導(dǎo)入 symbol,重置 PC指針到image的入口處,進(jìn)行調(diào)試;另一種,把image燒到SD卡或者其他啟動(dòng)存儲(chǔ)器上,啟動(dòng)板子,通過JTAG停住core的PC指針,導(dǎo)入 symbol,重置 PC指針到image的入口處,進(jìn)行調(diào)試。

下面會(huì)在具體步驟中說明這兩種方式如何操作:

A. 下載SPL image到AM335x中。

如果AM335x是從SD卡方式啟動(dòng),此時(shí) SPL image已經(jīng)被ROM code成功讀到片上 RAM中,就不需要加載 SPLimage了。

如果選擇SPL image通過CCS下載,鼠標(biāo)左鍵選擇CortxA8core , 然后在CCS菜單中, Tools -》 Load Memory, 選擇編譯好的SPL image U-Boot-.bin,如下圖所示:

HOME

選擇加載的地址。由于加載的U-Boot-.bin是RAW data,所以需要指定loadaddress,這個(gè)地址就是SPL的入口地址

對(duì)于AM335x,SPL的入口地址是0x402F0400,對(duì)應(yīng)的宏定義為CONFIG_SPL_TEXT_BASE, 該宏定義在include/configs/am335x_evm.h中。通過編譯出的map文件U-Boot-.map也可以查到,是 __startsymbol對(duì)應(yīng)的地址。

設(shè)定加載image內(nèi)型。 由于所有的代碼都是運(yùn)行在ARM(32bit)模式下。所以Type-size也要設(shè)成32bit。設(shè)置界面如下:



關(guān)鍵詞: AM335x spl u-boot CCS

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉