0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C6000 DSP代碼進(jìn)行板級(jí)在線編譯及下載的方法介紹

星星科技指導(dǎo)員 ? 來(lái)源:TI ? 作者:TI ? 2023-03-30 10:27 ? 次閱讀

傳統(tǒng)的C6000 DSP軟件是通過(guò)CCS在WINDOWS PC上進(jìn)行編譯調(diào)試,測(cè)試完畢把編譯好的可執(zhí)行文件燒錄到FLASH中。通過(guò)設(shè)置DSP啟動(dòng)模式從FLASH啟動(dòng),上電即可實(shí)現(xiàn)DSP正常運(yùn)轉(zhuǎn)。當(dāng)前ARM處理器性能日益增強(qiáng),在很多應(yīng)用中系統(tǒng)中會(huì)有ARM+DSP的方案。本文提出一種新思路,通過(guò)ARM來(lái)在線編譯DSP的代碼,在線下載DSP的程序,并啟動(dòng)DSP運(yùn)行。這種方法可以帶來(lái)以下好處:

1、可以動(dòng)態(tài)更新DSP的代碼。通過(guò)集成不同的DSP庫(kù)文件可以實(shí)現(xiàn)DSP應(yīng)用和支持庫(kù)分離,在DSP運(yùn)行時(shí)才進(jìn)行庫(kù)和應(yīng)用連接,極大的提高DSP軟件的靈活性。

2、DSP可以不需要FLASH,有利于節(jié)省BOM成本。

本文以AM5728 EVM+C6678 EVM為例實(shí)現(xiàn)了DSP程序板級(jí)在線編譯和下載。C6678是目前TI主推的多核高性能DSP,此芯片有8個(gè)C66 DSP CORE,支持多種啟動(dòng)模式SRIO/Ethernet/PCIe/I2C/SPI/Hyperlink。本文使用AM5728 A15 ARM來(lái)進(jìn)行DSP代碼的編譯連接,通過(guò)網(wǎng)口下載到C6678板上,并啟動(dòng)6678的8個(gè)DSP CORE運(yùn)行。

一、安裝AM5728 EVM運(yùn)行環(huán)境

本步會(huì)在AM5728 EVM上安裝ARM LINUX系統(tǒng)和C6000 DSP的編譯器。步驟如下:

1、使用最新的AM5728 LINUX SDK,本文測(cè)試的版本是ti-processor-sdk-linux-am57xx-evm-05.02.00.10。先制作一張啟動(dòng)SD卡,具體操作方法可以參考SDK USER GUIDE。

2、AM5728 EVM可以順利啟動(dòng)后,下載DSP的編譯器到EVM上,這是在ARM下運(yùn)行的DSP編譯器。

poYBAGQk85uATl3dAADMBKvIfhk191.jpg

3、把下載的文件放到AM5728 EVM上面運(yùn)行安裝。安裝完畢可以在文件系統(tǒng)/user/bin/下面找到cg6x、hex6x等編譯工具。注意:編譯器的頭文件和庫(kù)文件默認(rèn)安裝路徑在/usr/share/ti/cgt-c6x/include和/usr/share/ti/cgt-c6x/lib

4、 至此,AM5728 EVM的環(huán)境準(zhǔn)備好了,可以編寫makefile通過(guò)command line的方式來(lái)編譯C66 DSP的代碼,具體實(shí)現(xiàn)方法見步驟三。

二、準(zhǔn)備C6678 EVM

本步會(huì)把C6678 DSP配置成ETHERNET BOOT的模式:

1、C6678 EVM DIP撥碼開關(guān)配置如下:

SW3(pin1, pin2, pin3, pin4): off, on, off, on

SW4(pin1, pin2, pin3, pin4): on, on, on, off

SW5(pin1, pin2, pin3, pin4): on, on, off, off

SW6(pin1, pin2, pin3, pin4): off, on, on, on

2、上述步驟1即可實(shí)現(xiàn)DSP ETHERNET BOOT,我們也可以用如下的方法來(lái)驗(yàn)證是否成功。EVM和PC直連,上電,通過(guò)wireshark工具應(yīng)該可以抓到bootp數(shù)據(jù)包,如下:

pYYBAGQk85yAWIPsAACxI00pzIg387.jpg

大概3秒一次。(如果收不到這個(gè)數(shù)據(jù)包,可能需要更新EVM的FPGA程序,請(qǐng)聯(lián)系TI技術(shù)支持索取FPGA更新軟件。)

至此6678已經(jīng)處在ETHERNET BOOT的啟動(dòng)方式下。

三、在AM5728 EVM上編譯C6678程序

1、在如下地址下載本文用到的DEMO:https://e2echina.ti.com/question_answer/dsp_arm/c6000_multicore/f/53/t/170590可以通過(guò)TFTP工具把這個(gè)DEMO放到AM5728文件系統(tǒng)中。

2、在AM5728 EVM上解壓縮后可以看到emac_boot_mc.zip,這是本文用到的測(cè)試代碼,可以把它解壓縮。由于軟件編譯需要CSL庫(kù)的支持,可以把最新的CSL庫(kù)復(fù)制到AM5728的文件系統(tǒng)。

CSL庫(kù)下載地址:http://software-dl.ti.com/processor-sdk-rtos/esd/C667x/latest/index_FDS.htmlPC上安裝后把pdk_C6678_xxxx這個(gè)目錄復(fù)制到AM5728文件系統(tǒng)。本文把pdk_C6678_1_1_2_6目錄復(fù)制到文件系統(tǒng)。

3、在AM5728 EVM上通過(guò)控制臺(tái)使用如下命令進(jìn)行編譯:

cl6x -mv6600 --include_path="/home/root/boot/emac_boot_mc/pdk_C6678_1_1_2_6/packages/" --include_path="/home/root/boot/emac_boot_mc/pdk_C6678_1_1_2_6/packages/ti/csl" --include_path="/usr/share/ti/cgt-c6x/include" --abi=eabi --preproc_with_compile "./core0_start_others.c"

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core0.out" "./core0_start_others.obj" "./core0_start_other.cmd" -llibc.a

cl6x -mv6600 --include_path="/home/root/boot/emac_boot_mc/pdk_C6678_1_1_2_6/packages/" --include_path="/home/root/boot/emac_boot_mc/pdk_C6678_1_1_2_6/packages/ti/csl" --include_path="/usr/share/ti/cgt-c6x/include" --abi=eabi --preproc_with_compile "./simple.asm"

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core1.out" "./simple.obj" "./core1.cmd" -llibc.a

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core2.out" "./simple.obj" "./core2.cmd" -llibc.a

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core3.out" "./simple.obj" "./core3.cmd" -llibc.a

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core4.out" "./simple.obj" "./core4.cmd" -llibc.a

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core5.out" "./simple.obj" "./core5.cmd" -llibc.a

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core6.out" "./simple.obj" "./core6.cmd" -llibc.a

cl6x -mv6600 -z --abi=eabi -i"/usr/share/ti/cgt-c6x/include" -i"/usr/share/ti/cgt-c6x/lib" --reread_libs --xml_link_info="emac_boot_mc_linkInfo.xml" --rom_model -o "core7.out" "./simple.obj" "./core7.cmd" -llibc.a

4、把8個(gè).out文件復(fù)制到boot目錄。

四、使用AM5728 EVM制作并下載6678的程序

本 步驟可以把8個(gè).out文件通過(guò)工具合成一個(gè)用于網(wǎng)絡(luò)發(fā)送的文件,并發(fā)送到6678EVM上運(yùn)行。

1、AM5728 EVM控制臺(tái)執(zhí)行EMACboot_8core.sh腳本,這個(gè)腳本可以把8個(gè).out文件合成一個(gè)用于網(wǎng)絡(luò)發(fā)送的multi_core.eth文件。腳本如下:

hex6x core0.rmd

hex6x core1.rmd

hex6x core2.rmd

hex6x core3.rmd

hex6x core4.rmd

hex6x core5.rmd

hex6x core6.rmd

hex6x core7.rmd

./mergebtbl core0.btbl core1.btbl core2.btbl core3.btbl core4.btbl core5.btbl core6.btbl core7.btbl multi_core.btbl

./bootpacket multi_core.btbl multi_core.eth FF-FF-FF-FF-FF-FF FF-FF-FF-FF-FF-FF

2、注意,mergebtbl和bootpacket源碼都在boot目錄,可以通過(guò)編譯器交叉編譯后放到AM5728 EVM上運(yùn)行。

../ti-processor-sdk-linux-am57xx-evm-05.02.00.10/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-gcc -o mergebtbl mergebtbl.c

../ti-processor-sdk-linux-am57xx-evm-05.02.00.10/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-gcc -o bootpacket bootpacket.c

3、通過(guò)交叉編譯器編譯工具pcsendpkt,這是網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送工具。

../ti-processor-sdk-linux-am57xx-evm-05.02.00.10/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-gcc -o pcsendpkt pcsendpkt.c

4、6678EVM上電,并通過(guò)網(wǎng)口直連AM5728 EVM。在AM5728 EVM控制臺(tái)輸入如下命令:

ifconfig eth1 192.168.1.10

arp -s 192.168.1.12 ff:ff:ff:ff:ff:ff

這兩個(gè)命令分別配置AM5728和6678的IP地址。

./pcsendpkt multi_core.eth 192.168.1.12
如下圖,表示發(fā)送完成。

pYYBAGQk85yAdwQcAAA7bulk2B4107.jpg

五、通過(guò)CCS JTAG查看6678運(yùn)行結(jié)果。

通過(guò)仿真器連接6678 CORE1~CORE7任意一個(gè)核,可以看到A1寄存器是0x11223344表示啟動(dòng)成功。

poYBAGQk852AQPUcAADKMzf2VcA478.jpg

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    18927

    瀏覽量

    227228
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    551

    文章

    7824

    瀏覽量

    346832
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    8967

    瀏覽量

    365036
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DSP6000系統(tǒng)介紹

    1.1實(shí)時(shí)系統(tǒng)介紹1.2 DSP的歷史和特點(diǎn)1.3 DSP的選擇 第2章 C6000 DSP的開發(fā)環(huán)境CCS 2.1
    發(fā)表于 01-10 14:06

    c6000 c代碼的優(yōu)化

    關(guān)于c6000系列的C代碼優(yōu)化總結(jié),在hellodsp上看到的好帖,拿來(lái)共享一下~~~
    發(fā)表于 08-03 15:24

    TMS320C6000 DSP培訓(xùn) TI技術(shù)服務(wù)

    的一些基本實(shí)驗(yàn)如:FIR濾波器實(shí)驗(yàn)、無(wú)限脈動(dòng)響應(yīng)濾波器、以及數(shù)理分析方法快速傅立葉變換(FFT)在DSP中的應(yīng)用。 本課程是TMS320C6000DSP的基礎(chǔ)課程,重點(diǎn)介紹
    發(fā)表于 03-19 10:20

    TMS320C6000 DSP培訓(xùn) TI DSP以及MSP430技術(shù)服務(wù)

    的一些基本實(shí)驗(yàn)如:FIR濾波器實(shí)驗(yàn)、無(wú)限脈動(dòng)響應(yīng)濾波器、以及數(shù)理分析方法快速傅立葉變換(FFT)在DSP中的應(yīng)用。 本課程是TMS320C6000DSP的基礎(chǔ)課程,重點(diǎn)介紹
    發(fā)表于 04-09 15:37

    使用c_intrinsics_host_port在PC上模擬C6000DSP浮點(diǎn)指令

    ,因此第(3)步和第(2)步基本是同一步驟了。而采用Host Instrinsics則可以將第一步也簡(jiǎn)化,直接調(diào)用對(duì)應(yīng)DSPc函數(shù),在PC上則生成PC的代碼,在DSP上則生成
    發(fā)表于 12-26 15:07

    C6000 DSP代碼進(jìn)行板級(jí)在線編譯下載方法

    傳統(tǒng)的C6000 DSP軟件是通過(guò)CCS在WINDOWS PC上進(jìn)行編譯調(diào)試,測(cè)試完畢把編譯好的可執(zhí)行文件燒錄到FLASH中。通過(guò)設(shè)置
    發(fā)表于 11-10 08:15

    TMS320C6000系列DSPC代碼優(yōu)化方法

    對(duì)于TMS320C6000(簡(jiǎn)稱C6000)硬件平臺(tái)選用C語(yǔ)言編程時(shí),可利用C6000 優(yōu)化方法優(yōu)化C
    發(fā)表于 04-16 09:31 ?24次下載

    C6000系列DSP體系結(jié)構(gòu)介紹

    C6000系列DSP體系結(jié)構(gòu)介紹,下來(lái)看看
    發(fā)表于 06-06 16:03 ?20次下載

    面向TI公司C6000系列DSP的電源系統(tǒng)設(shè)計(jì)

    面向TI公司C6000系列DSP的電源系統(tǒng)設(shè)計(jì)
    發(fā)表于 10-23 14:07 ?6次下載
    面向TI公司<b class='flag-5'>C6000</b>系列<b class='flag-5'>DSP</b>的電源系統(tǒng)設(shè)計(jì)

    基于C6000系列DSP的MPEG

    更高。由于MPEG-4編碼算法復(fù)雜,需要存儲(chǔ)的數(shù)據(jù)量大,無(wú)論是存儲(chǔ)空間分配、數(shù)據(jù)傳輸還是運(yùn)算速度對(duì)DSP來(lái)說(shuō)都是挑戰(zhàn)。本文介紹了基于C6000系列DSP的MPEG-4視頻編碼卡的軟硬件
    發(fā)表于 11-28 12:42 ?379次閱讀

    C6000 DSP代碼進(jìn)行板級(jí)在線編譯下載方法介紹

    C6000 DSP代碼進(jìn)行板級(jí)在線編譯
    發(fā)表于 11-01 08:25 ?0次下載
    <b class='flag-5'>C6000</b> <b class='flag-5'>DSP</b><b class='flag-5'>代碼</b><b class='flag-5'>進(jìn)行板</b><b class='flag-5'>級(jí)</b><b class='flag-5'>在線</b><b class='flag-5'>編譯</b>及<b class='flag-5'>下載</b>的<b class='flag-5'>方法</b><b class='flag-5'>介紹</b>

    OMAPL138B C6000 DSP+ARM處理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《OMAPL138B C6000 DSP+ARM處理器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-07 09:15 ?0次下載
    OMAPL138B <b class='flag-5'>C6000</b> <b class='flag-5'>DSP</b>+ARM處理器數(shù)據(jù)表

    OMAP-L132 C6000? DSP+ARM處理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《OMAP-L132 C6000? DSP+ARM處理器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-07 09:29 ?0次下載
    OMAP-L132 <b class='flag-5'>C6000</b>? <b class='flag-5'>DSP</b>+ARM處理器數(shù)據(jù)表

    OMAP-L138 C6000 DSP+ARM處理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《OMAP-L138 C6000 DSP+ARM處理器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-07 09:36 ?0次下載
    OMAP-L138 <b class='flag-5'>C6000</b> <b class='flag-5'>DSP</b>+ARM處理器數(shù)據(jù)表

    CRS編譯碼原理和在TI C6000 DSP上的優(yōu)化實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《CRS編譯碼原理和在TI C6000 DSP上的優(yōu)化實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 09-10 14:25 ?0次下載
    CRS<b class='flag-5'>編譯</b>碼原理和在TI <b class='flag-5'>C6000</b> <b class='flag-5'>DSP</b>上的優(yōu)化實(shí)現(xiàn)