(多核DSP快速入門)4.編譯測試多核DSP執行個體Vlfft

來源:互聯網
上載者:User

標籤:

原創文章

轉載請註冊來源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_06\demos(2)CCS中匯入項目        在Project Explorer中右擊選擇Import...,選擇匯入一個已存在的CCS項目
        項目位置中輸入Vlfft檔案夾所在地址,此時在Vlfft檔案夾下,發現了兩個專案檔(6678版本和6670版本)這裡選擇6678版本就可以了。
        如果是選擇6670版本,還需要開啟vlfftconfig.h(vlfft\vlfftInc檔案夾下),把常量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


(多核DSP快速入門)4.編譯測試多核DSP執行個體Vlfft

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.