TMS320C62x軟件開發(fā)方法研究
;;; 摘要:闡述了TMS320C62x的系統(tǒng)結(jié)構(gòu)和軟件設(shè)計方法,介紹了在TMS320C6201 EVM板上實現(xiàn)寬帶毫米波雷達(dá)目標(biāo)時延神經(jīng)網(wǎng)絡(luò)識別算法。通過程序驗證,取得了比較好的處理效果。 ;;; 關(guān)鍵詞:TMS320C6201 DSP 軟件設(shè)計 實時處理 目標(biāo)識別 數(shù)字信號處理(DSP)技術(shù)近年來取得了高速發(fā)展,目前DSP芯片已經(jīng)廣泛地應(yīng)用于通信、圖像處理、語音處理、雷達(dá)等領(lǐng)域。TI公司是當(dāng)今世界DSP芯片的主要供應(yīng)商之一,其TMS320C6000是TMS320系列產(chǎn)品中的新一代高性能DSP芯片,其中定點系列為TMS320C62x,浮點系列為TMS320C67x。TMS320C6201芯片是定點系列的代表產(chǎn)品,其處理能力高達(dá)1600MIP。本文著重介紹TMS320C62x的軟件設(shè)計方法,燕對TMS320C62x的系統(tǒng)結(jié)構(gòu)以及基于TMS320C62x的軟件設(shè)計方法,在TMS320C6201上實現(xiàn)寬帶毫米波雷達(dá)目標(biāo)時延神經(jīng)網(wǎng)絡(luò)識別算法進(jìn)行闡述。 1 TMS320C62x的系統(tǒng)結(jié)構(gòu) TMS320C62x的系統(tǒng)結(jié)構(gòu)如圖1所示,TMS320C62x處理器由三個主要部分組成:CPU內(nèi)核、外設(shè)和存儲器。CPU內(nèi)核中的8個功能單元可以完成并行運行,功能單元執(zhí)行邏輯、位移、乘法、加法和數(shù)據(jù)尋址等操作。TMS320C6000系列芯片的體系結(jié)構(gòu)采用甚長指令字(VLIW)方式,單指令字長32位,每條32位指令占用一個功能單元。取指令、指令分配和指令譯碼單元每周期可以從程序存儲器到功能單元傳遞8條指令,這8條指令組成一個指令包,總字長為8×32=256位。芯片內(nèi)部設(shè)置了專門的指令分配模塊,可以將每個256位的指令包分配到8個功能單元中,并由8個功能單元并行運行。TMS320C62x芯片的最高時鐘頻率可以達(dá)到200MHz,8個功能單元同時運行時,該芯片的處理能力高達(dá)1600MIP。 TMS320C62x芯片的片內(nèi)存儲器總?cè)萘繛?M,其中2K×256位用于程序內(nèi)存和程序cache,寬度為256位;64K字節(jié)用于數(shù)據(jù)內(nèi)存和數(shù)據(jù)cache,用戶可以訪問8位、16位和32位的數(shù)據(jù)。TMS320C62x芯片的外設(shè)模塊包括多通道緩沖串口、時鐘、外部存儲器接口EMIF、DAA控制器、主機口和Power-down邏輯等,DMA控制器可以在存儲器空間的沒區(qū)域間控制轉(zhuǎn)移數(shù)據(jù);外部存儲器接口EMIF可以訪問的片外存儲器最大容量為64MB,數(shù)據(jù)總線寬度為32位,同時也提供對8位和16位存儲器的讀寫支持;16位寬的主機口HPI可以訪問TMS320C62x的所存儲空間和設(shè)備;多種外設(shè)模塊使得TMS320C62x芯片的功能十分強大。
2 TMS320C62x的軟件設(shè)計方法 用戶在開發(fā)應(yīng)用軟件時,首先應(yīng)當(dāng)明確應(yīng)用軟件的功能和性能要求,然后按照代碼開發(fā)流程的三個階段進(jìn)行軟件設(shè)計:第一階段是開發(fā)C代碼;第二階段是優(yōu)化C代碼;第三階段是編寫線性匯編代碼。以上的三個階段是不必須經(jīng)過的,如果在某一階段已經(jīng)實現(xiàn)了應(yīng)用軟件的功能和性能要求,那么就不必進(jìn)入下一個階段。代碼開發(fā)流程圖如圖2所示。 2.1 開發(fā)C代碼 開發(fā)C語言代碼需要考慮的要點包括:①數(shù)據(jù)結(jié)果;②分析C代碼性能;③使用查找表;④用整形數(shù)(int)表示浮點數(shù)。 2.1.1 數(shù)據(jù)結(jié)構(gòu) TMS320C62x編譯器對每種數(shù)據(jù)結(jié)構(gòu)定義一個尺寸,字符型(char)的8位,短整型(short)為16位,整型(int)為32位,長整型(long)為40位,浮點型(float)為32位,雙精度浮點型(double)為64位。在編寫C代碼時應(yīng)當(dāng)遵循的規(guī)則是:避免在代碼中將int型和long型作為同樣尺寸處理,因為編譯器對long型數(shù)據(jù)使用40位操作;對于定點乘法,應(yīng)當(dāng)盡可能使用short型數(shù)據(jù),這種數(shù)據(jù)類型可以更有效地使用TMS320C62x的乘法器;對循環(huán)計數(shù)器應(yīng)當(dāng)使用int或者無符號int類型,而不使用short或者無符號short類型,以避免不必要的符號擴展。 2.1.2 分析C代碼