電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 1946|回復(fù): 0
收起左側(cè)

基于仿真器的程序加載與燒寫——TMS320F2837x

[復(fù)制鏈接]

678

主題

902

帖子

8293

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

積分
8293
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-9-14 10:17:29 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
基于仿真器的程序加載與燒寫1.查看仿真器是否安裝成功如下TMS320F2837x的開發(fā),均以TL-XDS200仿真器為例。開發(fā)板斷電,連接好仿真器和開發(fā)板,并將仿真器的USB口插進(jìn)電腦USB插槽,開發(fā)板上電。右擊計(jì)算機(jī)圖標(biāo),點(diǎn)擊“設(shè)備->通用串行總線控制器”或者“設(shè)備->端口”,查看是否有對(duì)應(yīng)的仿真器的選項(xiàng)出現(xiàn),如有說明仿真器驅(qū)動(dòng)已經(jīng)正常安裝,否則請(qǐng)先正確安裝CCS。
​
圖 1
CCS集成開發(fā)環(huán)境自帶XDS100及XDS200系列仿真器驅(qū)動(dòng)。如果仿真器無法正常使用,請(qǐng)檢查是否存在驅(qū)動(dòng)沖突,XDS100系列仿真器使用FTDI芯片,請(qǐng)檢查是否與已經(jīng)安裝使用FTDI的USB轉(zhuǎn)串口驅(qū)動(dòng)沖突,如使用XDS200仿真器,請(qǐng)檢查計(jì)算機(jī)中是否正確安裝USB轉(zhuǎn)串口驅(qū)動(dòng)或者嘗試重新安裝計(jì)算機(jī)主板芯片組驅(qū)動(dòng)。

2.設(shè)置工程配置文件信息請(qǐng)先按照相關(guān)軟件安裝文檔安裝CCS,然后打開CCS集成開發(fā)環(huán)境,點(diǎn)擊菜單"File->New->Target Configuration File",如下圖所示:
圖 2
在彈出的界面中輸入工程配置文件名字,然后點(diǎn)擊Finish。如下圖所示:
​
圖 3
在彈出的對(duì)話框的"Connection"下拉框中選擇對(duì)應(yīng)的仿真器類型(如使用TL-XDS200仿真器請(qǐng)選擇"Texas Instruments XDS2xx USB Onboard Debug Probe"),在"Board or Device"下拉框中選擇對(duì)應(yīng)的CPU型號(hào):TMS320F2837xS,并點(diǎn)擊保存。如果CPU是雙核,請(qǐng)選擇:TMS320F2837xD,如下圖所示:

​圖 4

仿真器連接開發(fā)板,上電后,點(diǎn)擊"Test Connection",測(cè)試仿真器是否連接成功。如下圖所示:
​
圖 5

3.加載GEL文件GEL文件主要用于在仿真調(diào)試的過程中對(duì)CPU進(jìn)行初始化,如PLL、DDR等,還可以執(zhí)行一些調(diào)試操作。CCS集成開發(fā)環(huán)境自帶"f2837xs.gel"文件,為默認(rèn)選項(xiàng),可在Advanced界面配置。
​
圖 6

點(diǎn)擊CCS菜單"Run->Debug",彈出以下類似界面,可以看到C28xx核,是可以加載GEL文件和程序鏡像的。
​
圖 7

右擊對(duì)應(yīng)的DSP核,在彈出的界面中選擇"Open GEL Files View"選項(xiàng),右下角會(huì)彈出"GEL Files(TMS320C28xx)"對(duì)話框。

​
圖 8

若前面沒配置,可在對(duì)話框內(nèi)點(diǎn)擊右鍵,在彈出的界面中選擇"Load GEL"。選擇對(duì)應(yīng)目錄下的GEL文件,再點(diǎn)擊確定,接著右下角的"GEL Files(TMS320C28xx)"對(duì)話框會(huì)出現(xiàn)Success提示語句,如上圖。

4.CCS連接開發(fā)板CPU右擊對(duì)應(yīng)的DSP核,選擇"Connect Target"選項(xiàng),會(huì)顯示Suspended狀態(tài)。這說明CCS已經(jīng)和開發(fā)板CPU正常連接起來了。

​
圖 9

備注:如果此處提示"No source****"的信息,不是錯(cuò)誤信息,可以將其忽視。

5.加載程序鏡像文件點(diǎn)擊"Run->Load->Load Program",選擇程序鏡像文件(光盤"Demo"目錄下有用于演示的LED.out文件,現(xiàn)象為底板LED燈被循環(huán)點(diǎn)亮),可選擇并點(diǎn)擊OK。接著點(diǎn)擊綠色三角啟動(dòng)按鍵,程序即可正常運(yùn)轉(zhuǎn)起來。

​
圖 10

​
圖 11

6.燒寫程序到FLASH6.1燒寫單核裸機(jī)程序到FLASHCMD文件是編譯完成之后鏈接各個(gè)目標(biāo)文件時(shí),用來指示各個(gè)數(shù)據(jù)、符號(hào)等是如何分配到各個(gè)段,以及每個(gè)段所使用的存儲(chǔ)空間的,通過CMD文件可以實(shí)現(xiàn)將編譯生成的.out程序燒寫到FLASH。具體燒寫步驟如下:
  • 添加CMD文件
右鍵工程點(diǎn)擊"Add Files…",在彈出的對(duì)話框中選到"2837xS_Generic_FLASH_lnk"文件,路徑為光盤"Demo\F2837xS\NonOS\F2837xS_common\cmd"目錄下。
​
圖 12

​
圖 13

在彈出的對(duì)話框中,選擇"Copy files",然后點(diǎn)擊OK。

​
圖 14

  • 編譯程序鏡像文件
先右擊工程中"2837xS_Generic_RAM_lnk"文件,點(diǎn)擊"Exclude from Build",再右擊工程,點(diǎn)擊"Build Project",即可對(duì)當(dāng)前工程編譯。

​
圖 15

  • 燒寫程序鏡像文件
點(diǎn)擊"Run->Load->Load Program",選擇剛生成的程序鏡像文件并點(diǎn)擊OK。加載完成即燒寫完成,重新上電就可以運(yùn)行程序。

​
圖 16

如果遇到燒寫效果與仿真效果不一致,則有可能為例程中存在延遲函數(shù),導(dǎo)致運(yùn)行效果延遲較大(幾百秒以上)或無法運(yùn)行,解決辦法如下:
請(qǐng)雙擊工程里的main.c文件,在文件里查找是否有"DELAY_US"函數(shù),如下圖:

​
圖 17
​
圖 18

將其注釋即可。
如有,請(qǐng)?jiān)谖募锛尤胪獠慷x和復(fù)制內(nèi)存地址代碼,并重新燒寫,添加位置如下圖。
外部定義代碼:
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadSize;
extern Uint16 RamfuncsRunStart;
復(fù)制內(nèi)存地址代碼:
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);

​
圖 19

:如果遇到燒寫不成功,請(qǐng)按以下流程進(jìn)行操作:
  • "Help->About CCS->Installation Details->Installed Software",搜索flash,點(diǎn)擊"Debug Server Flash",Update更新即可。
  • 更新完成,提示重啟CCS。
重啟完成后,Debug Server Flash版本會(huì)變成Debug Server Flash 6.1.0.1425。

6.2燒寫雙核裸機(jī)程序到FLASHCMD文件是編譯完成之后鏈接各個(gè)目標(biāo)文件時(shí),用來指示各個(gè)數(shù)據(jù)、符號(hào)等是如何分配到各個(gè)段,以及每個(gè)段所使用的存儲(chǔ)空間的,通過CMD文件可以實(shí)現(xiàn)將編譯生成的.out程序燒寫到FLASH。
以雙核工程led_flash為例,具體燒寫步驟如下:
按照工程文件的導(dǎo)入步驟,將led_flash_cpu01和led_flash_cpu02的工程,導(dǎo)入到CCS的Project Explorer窗口,如圖所示。

​
圖 20

打開led_flash_cpu01的工程目錄,右鍵點(diǎn)擊"2837xD_RAM_lnk_cpu1.cmd",左鍵點(diǎn)擊"Exclude from Build"選項(xiàng)。

​
圖 21

然后,在led_flash_cpu01的工程目錄下,右鍵點(diǎn)擊"2837xD_FLASH_lnk_cpu1.cmd",左鍵點(diǎn)擊"Exclude from Build",取消該選項(xiàng)。

​
圖 22

在main.c文件的定義中,添加以下代碼,如圖所示:
#define _STANDALONE
#define _FLASH
#ifdef _FLASH
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadSize;
extern Uint16 RamfuncsRunStart;
#endif
​
圖 23

在主函數(shù)中,添加以下代碼,如圖所示:
#ifdef _FLASH
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif

#ifdef _STANDALONE
#ifdef _FLASH
//發(fā)送 boot 命令,允許 CPU2 開始執(zhí)行應(yīng)用程序
IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
#else
// 發(fā)送 boot 命令,允許 CPU2 開始執(zhí)行應(yīng)用程序
IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
#endif
#endif

// 片上 Flash 初始化
#ifdef _FLASH
   InitFlash();
#endif

​
圖 24

保存修改,點(diǎn)擊"Rebuild Project"選項(xiàng),重新編譯工程。

​
圖 25

打開led_flash_cpu02的工程目錄,右鍵點(diǎn)擊"2837xD_RAM_lnk_cpu2.cmd",左鍵點(diǎn)擊"Exclude from Build"選項(xiàng)。

​
圖 26

然后,在led_flash_cpu02的工程目錄下,右鍵點(diǎn)擊"2837xD_FLASH_lnk_cpu2.cmd",左鍵點(diǎn)擊"Exclude from Build",取消該選項(xiàng)。

​
圖 27

在main.c文件的定義中,添加以下代碼,如圖所示:
#define _FLASH
#ifdef _FLASH
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadSize;
extern Uint16 RamfuncsRunStart;
#endif

​
圖 28

在主函數(shù)中,添加以下代碼,如圖所示:
#ifdef _FLASH
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif

// 片上 Flash 初始化
#ifdef _FLASH
   InitFlash();
#endif

​
圖 29

保存修改,點(diǎn)擊"Rebuild Project"選項(xiàng),重新編譯工程。

​
圖 30

按照工程導(dǎo)入步驟,將生成的led_flash_cpu01.out和led_flash_cpu02.out文件,分別加載到CPU1和CPU2。
開發(fā)板斷電,然后重新上電,就可以正常點(diǎn)亮,核心板上的LED流水燈。
6.3燒寫雙核SYSBIOS程序到FLASH以SYSBIOS的LED工程為例。
將光盤資料的Tools目錄下的"TMS320F2837xD_BIOS.cmd"文件,拷貝到對(duì)應(yīng)的工程目錄下。

​
圖 31

按照工程文件的導(dǎo)入步驟,將光盤資料中"Demo\DSP_F2837xD\SYSBIOS\Application"路徑下的LED工程,導(dǎo)入到CCS的Project Explorer窗口,如圖所示。
​
圖 32
打開sysbios_led的工程目錄,右鍵點(diǎn)擊"TMS320F2837xD.cmd",左鍵點(diǎn)擊"Exclude from Build"選項(xiàng)。
​
圖33
雙擊工程目錄下的app.cfg文件。
​
圖 34

點(diǎn)擊Boot選項(xiàng)。
​
圖 35

確認(rèn)Boot配置,如圖所示。
​
圖 36

保存退出,右鍵工程,選擇"Rebuild Project"選項(xiàng),重新編譯工程,如圖所示。

​
圖 37
按照工程導(dǎo)入步驟加載sysbios_led.out文件,然后點(diǎn)擊程序運(yùn)行按鈕。
開發(fā)板斷電重啟,燒寫到FLASH的流水燈程序,即可正常運(yùn)行。

嵌入式DSP、ARM、FPGA多核技術(shù)開發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表