目錄
目錄第一章簡介1-1第一節TMS320C6201DSP處理器1-1第二節TMS320C6x系列家族1-2第三節本書架構1-4第二章TMS320C6201處理器架構及操作原理2-1第一節CPU結構2-21.1運算單元(FunctionalUnits)2-21.2一般用途暫存器(RegisterFile)2-31.3控制暫存器(ControlRegisters)2-41.4暫存器與運算單元間之路徑(DataPath)2-8第二節記憶體分配2-122.1內部程式記憶體2-132.2內部資料記憶2-142.3內部周邊元件空間(Internal-PeripheralSpace)2-172.4外部記憶體介面(ExternalMemoryInterface,EMIF)2-19第三節主電腦介面(HostInterfacePorts,HPIs)2-32第四節DMA(DirectMemoryAccess)Controllers2-364.1DMA暫存器2-364.2DMA之工作模式2-42第五節中斷(Interrupt)2-505.1CPU處理之中斷服務2-505.2中斷選擇器2-55第六節指令執行之Pipeline架構2-566.1TMS32062xCPUpipeline架構2-576.2TMS320C67xCPUPipeline架構2-59第七節CPU之Reset及Bootload動作2-59第八節高速串聯埠介面(MultichannelBufferedSerialPorts;Mc8.1控制暫存器2-638.2McBSP之工作模式2-748.2.1一般工作模式2-748.2.2多通道傳輸與接收模式2-778.2.3SPI介面工作模式2-838.2.4一般輸出入工作模式2-85第九節計時器(Timer)2-85第十節TMS320C6701之浮點運算控制暫存器2-90第三章TMS320C6x指令集及組合語言發展工具3-1第一節TMS320C62x/C67x整數運算指令集3-11.1指令之一般說明3-11.2指令之使用說明3-111.3使用指令之限制3-14第二節中斷服務程式3-14第三節TMS320C67x之浮點運算指令3-16第四章組合語言編譯器及連結器(AssemblerandLinker)4-1第一節Assembler使用法4-2第二節組合語言之常數及符元表示法4-4第三節虛指令(Directives)4-7第四節巨集指令(Macro)4-14第五節程式連結器(Linker)4-15第六節COFF(CommonObjectFileFormat)目的檔格式4-22第七節處理COFF檔的附屬程式-Archiver及ROM格式轉換程式第五章TMS320C6xC語言編譯器5-1第一節TMS320C6xC語言語法5-1第二節C語言編譯器5-6第三節從C語言程式呼叫組合語言函式5-15第四節線性組合語言(LinearAssemblyLanguage)5-20第五節TMS320C6xC語言函式庫5-24第六章暫存器及周邊元件控制函式6-1第一節控制CPU暫存器之巨集指令6-1第二節內部程式記憶體cache控制巨集指令6-5第三節DMA控制巨集及函式6-6第四節EMIF控制巨集指令及函式6-15第五節HPI控制巨集指令及函式6-19第六節中斷控制之巨集及函式6-20第七節高速串聯埠之控制巨集指令及函式6-24第八節計時器之控制巨集指令及函式6-35第七章程式發展流程7-1第一節C語言程式的效能分析及最佳化程式撰寫7-4第二節組合語言程式的效能分析及最佳化程式撰寫7-9第八章TMS320C6XEVM發展系統8-1第一節TMS320C6xEVM模板之硬體架構8-11.1TMS320C6xCPU設定8-61.2PCI介面8-131.3控制邏輯(CPLD)8-161.4AudioI/O及McBSP介面8-26第二節TMS320C6201EVM模板軟體發展環境8-272.1TMS320C6201EVM模板測試程式8-282.2EVM模板重置及硬體設定軟體8-302.3EVM模板之DSP程式載入與執行8-312.4EVM模板之線上除錯程式8-32第三節TMS320C6201EVM模板支援函式庫8-323.1EVM模板之PC端支援函式(Win32DLLAPI)8-323.2EVM模板之DSP端支援函式庫8-463.2.1McBSP驅動函式庫8-3.2.2Codec驅動函式庫8-503.2.3EVM模板控制函式庫8-54第九章整合式發展環境-CodeComposer9-1第一節Project之建立與編譯9-2第二節程式除錯9-5第三節進階功能-檔案資料輸出入及資料繪圖9-11第四節輸出入資料檔檔案格式9-15第五節在模擬器下模擬中斷及輸出入埠9-165.1CPU接腳之信號模擬9-175.2輸出入埠之模擬9-18第十章即時系統之發展環境-DSP/BIOS10-1第一節DSP/BIOS的系統配置工具10-3第二節DSP/BIOS核心程式10-8第三節DSP/BIOS中之緒程10-123.1HWI緒程10-173.2SWI緒程10-203.3TSK緒程10-273.4IDL緒程(空閒迴圈)10-333.5HWI、SWI、TSK可呼叫函式對照表10-333.6CLK緒程10-403.7PRD緒程10-42第四節信號機(Semaphores)及郵件箱(Mailbox)10-444.1信號機與佇列(Queue)10-444.2郵件箱(Mailbox)10-51第五節即時分析物件10-555.1LOG模組10-565.2STS模組10-595.3TRC模組10-625.4DSP/BIOS執行效能顯示工具10-64第六節核心程式及物件資料之檢查10-65第七節輸出入物件10-687.1資料導管物件(PipeObject;PIP)10-697.2資料流物件(StreamI/OObject;SIO)10-74第八節ATM、C62、RTD模組10-88第九節DSP/BIOS程式範例10-92第十節其它軟體支援10-108參考資料參-1實驗講義實驗一EVM320C6x程式發展環境之操作實-2實驗二利用EVM320C6x模板做一個簡單的AM調變及解調系統模擬實驗三EMIF與Programmemorycache設定實-11實驗四計時器與中斷服務函式練習實-23實驗五DMA設定與使用練習實-27實驗六由C語言程式呼叫組合語言函式及circularaddress模式之實驗七EVM320C6x模板之錄放音程式設計實-33實驗八PC與EVM320C6x模板間資料傳輸程式設計實-37實驗九AM信號之調變與解調實-42實驗十FFT之製作與應用實-43實驗十一數位濾波器之製作實-45圖目錄圖二-1TMS320C62x/C67x之方塊圖。2-1圖二-232位元暫存器結合成40位元延伸暫存器之格式。2-3圖二-3AMR結構圖。2-5圖二-4CSR結構圖。2-6圖二-5IER、IFR、ISR、ICR結構圖。2-7圖二-6ISTP結構圖。2-8圖二-7TMS320C62xCPU之資料存取路徑圖。2-9圖二-8TMS320C67xCPU之資料存取路徑圖。2-11圖二-9littleendian(i8086)與bigendian(MC68000)資料儲存?BR>圖二-10TMS320C6201(revision2)內部記憶體架構圖。2-15圖二-11TMS320C6201(revision3)內部記憶體架構圖。2-16圖二-12外界記憶體介面(ExternalMemoryInterface,EMIF)控?BR>圖二-13記憶體直接存取控制器(DirectMemoryAccess,DMA)控?BR>圖二-14外界記憶體介面(EMIF)之方塊圖。2-19圖二-15外接SDRAM之架構圖。2-25圖二-16外接SBSRAM之架構圖。2-28圖二-17TMS320C6x外接非同步記憶體元件之介面連接架構圖。2-2圖二-18非同步記憶體元件之資料讀寫時序信號圖。2-31圖二-19使用HPI與外界電腦連結之線路圖。2-35圖二-20DMA通道主要控制暫存器之架構。2-37圖二-21DMA通道次要控制暫存器之架構。2-39圖二-22DMA之其餘暫存器。2-40圖二-23DMA輔助通道之控制暫存器結構圖。2-41圖二-24DMA範例一。2-44圖二-25DMA範例二。2-44圖二-26DMA範例三。2-46圖二-27利用DSTDIR=11b來做矩陣轉置(transpose)。2-46圖二-28DMA範例四-分裂通道模式。2-47圖二-29DMA分裂通道模式示意圖。2-48圖二-30DMA中斷產生之邏輯。2-49圖二-31TMS320C62x執行中斷服務常式之CPUpipeline時序圖。2-5圖二-32TMS320C67x執行中斷服務常式之CPUpipeline時序圖。2-5圖二-33中斷向量表。2-54圖二-34TMS320C620指令執行流程。2-58圖二-35利用在執行封包中加入NOP指令以提昇程式執行效率。2-58圖二-36TMS320C67x之pipeline架構。2-59圖二-37高速串聯埠介面(McBSP)系統方塊圖。2-63圖二-38串聯埠控制暫存器(SerialPortControlRegister;SPCR圖二-39接腳控制暫存器(PinControlRegister;PCR)之結構。圖二-40接收控制暫存器及傳輸控制暫存器之結構。2-69圖二-41McBSP中系統時序產生器之方塊圖。2-72圖二-42McBSP輸出資料之時序與SRGR暫存器之參數關係圖。2-74圖二-43傳輸或接收資料框範例。2-75圖二-44資料框延遲時序之示意圖。2-76圖二-45多通道控制暫存器之結構。2-77圖二-46子資料框啟動的設定方式。2-79圖二-47傳輸/接收通道啟動暫存器的結構。2-80圖二-48設定XMCM之多通道傳輸工作模式範例。2-81圖二-49McBSP作為SPI之master及slave的連接方式。2-83圖二-50時脈信號暫停之時序示意圖。2-84圖二-51TMS320C6201Timer系統方塊圖。2-86圖二-52Timer控制暫存器各位元功能圖。2-88圖二-53Timer輸出波形圖。2-89圖二-54浮點加法特性暫存器(float-pointadderconfigurationr圖二-55浮點輔助特暫存器(float-pointauxiliaryconfiguration圖二-56浮點乘法特性暫存器(float-pointmultiplierconfigurat圖三-1TMS320C62x的指令集編碼方式。3-3圖三-2指令中運算元之示意圖。3-7圖三-332-bit單精確度數及雙精確度數之資料格式。............圖四-1程式發展流程。4-1圖四-2.field虛指令之用法。4-12圖四-3MEMORY虛指令之範例。4-18圖四-4SECTION虛指令之範例。4-20圖四-5記憶體配置示意圖。4-21圖四-6COFF目的檔之結構。4-22圖四-7區段頭資料之示意圖。4-24圖四-8ROM格式轉換程式中記憶體寬度之設定。4-29圖四-9ROMS虛指令範例。4-31圖五-1C語言中之參數傳送機制示意圖方式。5-16圖五-2C語言呼叫函式時參數傳遞方式。5-16圖七-1TMS320C6x程式發展環境。7-1圖七-2TMS320C6x程式發展建議流程。7-3圖七-3vecsum()函式記憶體相關性之分析圖。7-5圖七-4vecsum2()函式記憶體相關性之分析圖。7-6圖七-5迴圈指令的執行時序圖。7-8圖七-6向量內積組合語言程式(1)之記憶體相關性之分析圖。7-1圖七-7向量內積組合語言程式(2)之記憶體相關性之分析圖。7-1圖七-8向量內積組和語言程式(3)中迴圈指令的執行時序圖。7-1圖七-9向量內積組和語言程式(4)中迴圈指令的執行時序圖。7-1圖八-1TMS320C6201EVM模板方塊圖。8-3圖八-2TMS320C6201EVMWin32發展環境示意圖。8-5圖八-3EVM模板之詳細方塊圖。8-7圖八-4PCI介面方塊圖。8-14圖八-5系統控制線路(CPLD)示意圖。8-18圖八-6TMS320C6201EVM之CPU時序信號控制線路。8-19圖八-7McBSP0通信埠。8-26圖八-8立體聲訊介面之方塊圖。8-27圖九-1CodeComposer使用者介面範例。9-1圖九-2檔案瀏覽視窗。9-2圖九-3編譯器及連接程式選擇項之設定視窗。9-4圖九-4除錯視窗。9-5圖九-5除錯工具列。9-6圖九-6檢查變數值之方法。9-8圖九-7資料顯示視窗群。9-8圖九-8浮動資料顯示視窗。9-9圖九-9斷點特性設定視窗。9-10圖九-10探針點及檔案輸入之範例。9-12圖九-11探針點設定視窗。9-13圖九-12探針點設定完成。9-14圖九-13CodeComposer資料顯示之例子。9-15圖九-14'C6xSimulator之設定。9-17圖九-15中斷信號模擬之設定。9-18圖九-16輸出入埠模擬之設定。9-19圖十-1DSP/BIOS發展環境示意圖。10-1圖十-2內建之DSP/BIOS系統配置樣本檔。10-3圖十-3DSP/BIOS系統配置基本模組。10-4圖十-4更改系統配置模組中的資訊或新增一個屬於此模組的物件。1圖十-5系統配置工具所產生之檔案示意圖。10-5圖十-6記憶體管理模組(MEM,Memorysectionmanager)之設定。圖十-7程式及資料段放置位置之設定。10-7圖十-8系統記憶體配置資訊之設定。10-7圖十-9DSP/BIOS中各種緒程之優先順序。10-13圖十-10多緒程工作之一範例。10-17圖十-11HWI物件之設定範例。10-18圖十-12使用DSP/BIOS系統配置工具更改SWI物件之參數。10-21圖十-13使用SWI_inc及SWI_getmbox函式之示意圖。10-24圖十-14使用SWI_or函式之範例。10-25圖十-15使用SWI_dec及SWI_andn函式之範例。10-26圖十-16在DSP/BIOS系統配置工具中觀察TSK物件之參數。10-27圖十-17TSK緒程的狀態變化圖。10-29圖十-18TSK管理員設定。10-29圖十-19TSK範例程式之DSP/BIOS系統配置-TSK部分。10-31圖十-20TSK範例程式之追蹤結果。10-32圖十-21CLK物件管理員之設定。10-40圖十-22系統預設的CLK物件-PRD_clock。10-41圖十-23PRD物件管理員之設定。10-43圖十-24PRD物件之設定。10-43圖十-25SEM物件之設定。10-46圖十-26SEM範例程式之系統配置。10-47圖十-27SEM範例程式之追蹤輸出。10-51圖十-28MBX物件之設定。10-52圖十-29MBX範例程式之追蹤結果。10-55圖十-30LOG模組之工作示意圖。10-56圖十-31DSP/BIOS系統配置工具中之LOG物件管理員。10-57圖十-32DSP/BIOS系統配置工具中之LOG物件設定。10-57圖十-33PC端詢問即時分析資料之頻率設定。10-58圖十-34STS模組之工作示意圖。10-59圖十-35DSP/BIOS系統配置工具中之STS物件設定。10-60圖十-36StatisticsView視窗。10-61圖十-37StatisticsView資料選擇視窗。10-62圖十-38PC端之TRC物件控制。10-62圖十-39程式執行分析圖(ExecutionGraph)。10-65圖十-40CPU負荷分析圖(CPULoad)。10-65圖十-41核心程式及物件檢查視窗。10-66圖十-42PIP物件之示意圖。10-70圖十-43DSP/BIOS系統配置工具中PIP物件之設定。10-71圖十-44RTA_toHost物件的內定設定值。10-73圖十-45在PC端將HST物件經plug-in連接至檔案。10-74圖十-46SIO物件之示意圖。10-75圖十-47DSP/BIOS系統配置工具中SIO物件之設定。10-76圖十-48SIO物件的資料緩衝器交換機制。10-77圖十-49SIO物件程式範例一之DSP/BIOS系統配置之內容。10-78圖十-50DSP/BIOS系統配置工具中GDN元件物件之參數設定。10-圖十-51利用GDN物件輸出資料到PC端之檔案。10-80圖十-52SIO物件程式範例二之DSP/BIOS系統配置之內容。10-81圖十-53stackable元件之示意圖。10-86圖十-54SIO物件中之函式與DEV物件資料處理函式間之關係圖。圖十-55RTDX模組工具示意圖。10-91圖十-56聲音信號輸出入的範例程式之方塊圖。10-92圖十-57audioSwi及DSS_rxPipe物件之設定。10-96圖十-58DSS_rxPipe、DSS_txPipe物件中之各個運作與其使用函式?BR>圖十-59McBSP0相對應之HWI物件之設定。10-100表目錄表二-1各運算單元之詳細功能。2-2表二-2控制暫存器。2-4表二-3系統記憶體/輸出入元件地址分配表。2-12表二-4EMIF所控制之輸出入信號。2-20表二-5各記憶體區塊(CEx)所能使用之記憶體種類。2-21表二-6EMIF控制暫存器之結構。2-22表二-7EMIFCE控制暫存器。2-23表二-8TMS320C6x與SDRAM介面之各接腳表。2-26表二-9EMIFSDRAM控制暫存器。2-27表二-10HPI暫存器結構。2-33表二-11DMA觸動同步傳送之信號設定表。2-43表二-12DMA通道之狀況。2-49表二-13周邊中斷源表。2-55表二-14中斷選擇器的預設定。2-56表二-15Bootload模式之設定。2-61表二-16McBSP中各暫存器之地址分配表。2-64表二-17串聯埠控制暫存器中各位元欄所代表之意義。2-65表二-18接腳控制暫存器中各位元所代表之意義。2-67表二-19接收/傳輸控制暫存器各位元欄之意義。2-70表二-20取樣頻率控制暫存器各位元欄之意義。2-73表二-21多通道控制暫存器各位元欄之詳細說明。2-78表二-22CLKSTP欄的設定方式。2-84表二-23一般輸出入工作模式的各種設定方式。2-85表二-24TMS320C6201Timer暫存器地址表。2-87表二-25浮點加法特性暫存器(FADCR)內部各位元所代表意義。2-92表二-26浮點輔助特暫存器(FAUCR)內部各位元所代表意義。2-93表二-27浮點乘法特性暫存器(FMCR)內部各位元所代表意義。2-94表三-1creg欄位的設定值3-5表三-2TMS320C62x/C67x指令分類表。3-7表三-3指令集-以運算單元分類。3-9表三-4執行指令所需時間之簡表3-9表三-5非直接位址之產生。3-11表三-6特殊的單精確度數及雙精確度數。3-18表三-7TMS320C6701之浮點運算指令表。........................表三-8指令執行型態之延遲時槽數值及運算單元延滯數值。3-20表四-1Assembler的附加功能選項。4-3表四-2系統預先定義之symbols。4-5表四-3常數運算式中之運算元。4-6表四-4Assembler虛指令表。4-8表四-5Linker的附加功能選項表。4-17表四-6'C6x組合語言及C語言程式中之輸出區塊。4-21表四-7COFF檔頭結構表。....................................表四-8COFF附屬檔頭結構表。4-24表四-9COFF檔案中區段頭結構表。4-25表四-10ROM格式轉換程式之附加功能選項。4-27表五-1資料型態表。5-2表五-2C語言中預定義之巨集(Macro)指令。5-5表五-3C語言編譯器的附加功能選項。5-11表五-4C語言翻譯器中所使用之暫存器及其用途。5-18表五-5TMS320C6xC語言發展工具之內建組合語言函式。5-19表五-6線性組合語言之虛指令表。5-21表六-1regs.h中定義之巨集指令。6-2表六-2regs.h中定義之各控制暫存器位元欄資料。6-3表六-3cache.h中定義之巨集指令。6-5表六-4dma.h及dma.c中定義之巨集指令及函式。6-8表六-5dma.h中定義之符號。6-9表六-6emif.h中定義之巨集指令。6-15表六-7emif.h中定義之符號。6-15表六-8hpi.h中定義之巨集指令。6-19表六-9hpi.h中定義之符號。6-19表六-10intr.h、intr.c中定義之巨集指令及函式。6-22表六-11intr.h中定義之符號。6-23表六-12mcbsp.h及mcbsp.c中定義之巨集指令及函式。6-25表六-13mcbsp.h中定義之符號。6-27表六-14timer.h及timer.c中定義之巨集指令及函式。6-37表六-15timer.h中定義之符號。6-39表七-1除錯程式之附加功能選項。7-2表七-2profile可設定之區域。7-8表七-3profile顯示視窗中各項資料之意義。7-10表九-1TMS320C6201TEB板設定開關表。9-3表九-2EVM模板之外接記憶體詳細配置表。9-6表九-3EVM模板接頭之功能表。9-10表九-4EVM模板使用記憶體MAP0之位址分配表。9-11表九-5EVM模板使用記憶體MAP1之位址分配表。9-12表九-6EVM模板之時序信號頻率表。9-13表九-7EVM模板之外接記憶體配置表與特性設定值。9-13表九-8EVM模板上SDRAM之參數設定。9-13表九-9CodeComposer軟體中EVM模板記憶體之系統起始值。9-14表九-10EVM模板之DIP開關。9-14表九-11S5933PCI控制晶片基本位址暫存器。9-15表九-12S5933PCIbus暫存器位址表。9-17表九-13PCIAdd-onbus暫存器位址表。9-17表九-14DSPHPI暫存器(BAR3)。9-18表九-15系統各元件之重置信號。9-21表九-16PCI端之CPLD暫存器內容。9-22表九-17DSP端之CPLD暫存器內容。9-25表九-18DSP之中斷信號。9-27表九-19Win32API函式庫。9-36表九-20McBSP函式庫中之API狀態巨集。9-52表九-21McBSP函式列表9-53表九-22Codec函式庫中之API巨集。9-55表九-23Codec之函式列表9-58表九-24EVM模板控制函式庫。9-59表十-1HWI、SWI、TSK、IDL緒程特性比較表。10-14表十-2緒程間可否產生(post)或阻止(preempt)其它緒程的關係表表十-3SWI_xxx函式及郵件箱內容改變示意表。10-23表十-4在特定的緒程中允許使用之DSP/BIOS函式。10-39表十-5TRC之各項設定。10-64表十-6PIP與SIO物件比較表。10-69表十-7DSP/BIOS中之模組表。10-88表十-8數位信號處理函式庫。10-108表十-9影像處理函式庫。10-110vii
目錄第一章簡介1-1第一節TMS320C6201DSP處理器1-1第二節TMS320C6x系列家族1-2第三節本書架構1-4第二章TMS320C6201處理器架構及操作原理2-1第一節CPU結構2-21.1運算單元(FunctionalUnits)2-21.2一般用途暫存器(RegisterFile)2-31.3控制暫存器(ControlRegisters)2-41.4暫存器與運算單元間之路徑(DataPath)2-8第二節記憶體分配2-122.1內部程式記憶體2-132.2內部資料記憶2-142.3內部周邊元件空間(Internal-PeripheralSpace)2-172.4外部記憶體介面(ExternalMemoryInterface,EMIF)2-19第三節主電腦介面(HostInterfacePorts,HPIs)2-32第四節DMA...