IT技術互動交流平臺

多核DSP快速入門4.編譯測試多核DSP實例Vlfft

來源:IT165收集  發布日期:2016-04-28 21:40:30
原創文章

轉載請注冊來源http://blog.csdn.net/tostq

系列教程目錄:http://blog.csdn.net/tostq/article/details/51245979

 

Vlfft是由TI官網提供的一個大尺寸快速傅里葉變換的多核DSP實例,其下載地址如下: http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/12423/67467.aspx 這個實例是許多同學多核DSP的入門實例,實例內也提供了簡單的安裝編譯教程,不過并沒有講得很清楚,在編譯的過程中還是會出現很多問題,本節主要提供一個詳細的Vlfft安裝編譯步驟,但是由于這個實例涉及了較多關于多核通信的內容,所以這里并不詳細解釋代碼原理,如果后面有時間的話,以后再具體分析這個實例。
一、安裝MCSDK和STMlib 這MCSDK組件是Vlfft必須的,不過STMlib卻是不必須的。 (1)MCSDK的安裝 MCSDK ( Multicore Software Development Kit )是一個多核的軟件開發組件,它主要是通過同BIOS協同開發,里面提供了比如PDK等工具,與CCS5.2兼容的MCSDK應該是2.0版本,而我使用的是2.1版本,會出現一個警告,但也是可以運行的。 MCSDK的下載地址:http://www.ti.com/tool/bioslinuxmcsdk ,這里我選擇的是最后一個。
 下載MCSDK后,直接點擊安裝,安裝目錄同CCS在同一文件夾下,如D:/ti,在安裝組件上,可以全部選擇啦。
完成安裝,重新啟動CCS,查看相關組件是否安裝到CCS中去(一般都自動導入了),如果不是,請手動導入。
關于SYS/BIOS的官方安裝方法:http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_Getting_Started_Guide (2)STMlib安裝 STMlib(System Trace)是一個系統追蹤組件,Vlfft這個工程支持2種配置,一種是純VLFFT運算工程(默認模塊,也可以不安裝STM),還有一種是集成了STM 模塊的VLFFT工程,即在Build option中的build variables中定義了STM_LIBRARY_ROOT,如果未安裝STM lib或者STM的路徑不對,則可能編譯報錯。 STMLib 下載地址:https://gforge.ti.com/gf/project/ctoolslib/frs/ STMLib 的學習使用:http://processors.wiki.ti.com/index.php/Using_System_Trace_(STM) STMLib安裝只需要將安裝解壓跟CCS放到同一個文件夾就可以了(如D:/ti)
二、Vlfft的配置 (1)將Vlfft項目的整體文件夾放到MCSDK的demo文件夾下:如mcsdk_2_01_02_06demos (2)CCS中導入項目 在Project Explorer中右擊選擇Import...,選擇導入一個已存在的CCS項目
 項目位置中輸入Vlfft文件夾所在地址,此時在Vlfft文件夾下,發現了兩個項目文件(6678版本和6670版本)這里選擇6678版本就可以了。
如果是選擇6670版本,還需要打開vlfftconfig.h(vlfft lfftInc文件夾下),把常量EIGHT_CORE_DEVICE設為0,常量FOUR_CORE_DEVICE設為1,(默認是6678,與個這個設置剛好相反) TIPs: a).關于FFT的大小設置,將vlfftconfig.h中的如下宏中的一個設為1,其他為0
b). DSP內核的數目設置,選擇1,2,4,8個設置
(3)BIOS文件的配置 vlfft_evmc6678l.cfg文件是BIOS文件的配置文件,下一節會具體解釋如何使用BIOS,這里直接雙擊點開,出現如下: BIOS的設置提供了界面和源代碼編輯兩種選擇,這里我們點擊Source,選擇源代碼編輯 如果是Debug模型,需要將.cfg源代碼中的92~96行的代碼注釋,而Release模式,則不作改變。
此時點擊小錘子進行Debug模式編譯,出現如下錯誤,這里的警告主要是MCSDK版本不配,關系不大。
錯誤主要是placement fails for object
這里提示.const所在段L2SRAM太小,內存段分配太小,需要打開鏈接命令文件.cmd(在Debug/configPkg/Linker.cmd)查看:
這里的L2SRAM只有156kb,實在太小,于是我們可以增加其大小到4M左右,但是我們不能直接到.cmd文件上修改,因為這個文件是由BIOS配置文件.cfg自動生成的,所以即使我們在.cmd文件中修改了,最后還是會出現原來的錯誤。 (3)在BIOS文件中修改內存設置
SYS/BIOS是DSP的一個實時操作系統,其給DSP提供許多API函數和操作組件,CSS提供了界面式的配置方法(通過System Overview)可以打開,這里的Task、Swi、Hwi、Memory等都是BIOS的相關組件,這里綠色小勾表明了當前組件已經被安裝到了BIOS中了,現在我們需要重新分配內存,所以我們點開Memory組件,選擇Program模式
在Program中選擇View,找到cpu中的MemoryMap中修改L2SRAM的大小和L2SRAM_1的起始地址,這里需要注意的是雖然錯誤只是提示L2SRAM的太小,但由于L2SRAM和L2SRAM_1相鄰,所以如果修改L2SRAM的大小,就必然也要修改L2SRAM_1的起始地址。

還有一種更為便捷的方法是直接在.cfg的源文件(Source)上修改,這里在文件末尾添加如下:
var execontextInstance0 = xdc.lookup('xdc.platform.ExeContext.Instance#0'); execontextInstance0.memoryMap["L2SRAM"].len = 4194304; execontextInstance0.memoryMap["L2SRAM_1"].base = 12582912; 此時再次點擊編譯,完成編譯

三、Vlfft的調試結果 (1)導入目標配置文件.ccxml,選擇C6678 Device Functional Simulator, Little Endian的目標配置文件 (2)將所有的(8個)核Group,點擊運行,獲得結果: 四、集成了STM 模塊的VLFFT工程 前面我們安裝了STMLib,這一節介紹如何使用STMLib (1)在Build option中的build variables中定義了STM_LIBRARY_ROOT
(2)在Linked Resources中修正STM_LIBRARY_ROOT的地址
做完上面兩件事后,我們點擊項目文件中的STMhelper.c,發現現在是可以打開的,說明STMlib已經成功導入了
Vlfft代碼下載 https://github.com/tostq/EasyMulticoreDSP/tree/master/4.vlfft
Tag標簽: 多核   實例  
  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果