




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章
DSP的開發(fā)環(huán)境與工具
主要內容軟件開發(fā)過程及開發(fā)工具CCS集成開發(fā)環(huán)境
CCS集成開發(fā)環(huán)境
TMS320C54x代碼生成工具,如匯編器、鏈接器、C/C++編譯器、建庫工具等。
CCS集成開發(fā)環(huán)境(IntegratedDevelopongEnvirorment,IDE),包括編輯器、工程管理工具、調試工具等。
DSP/BIOS(BasicInputandOutputSystem)插件及應用程序接口API(ApplicationProgranInterface)。
RTDX(RealTimeDataExchange)實時數據交換插件、主機(Host)接口及相應的API。CCS系統(tǒng)安裝CCS對PC機的最低要求為Windows95、32MRAM、100M剩余硬盤空間、奔騰90以上處理器、SVGA顯示器(分辨率800×600以上)。CCS系統(tǒng)設置在安裝CCS之后、運行CCS軟件之前,首先需要運行CCS設置程序,根據用戶所擁有的軟、硬件資源對CCS進行適當的配置。啟動SetupCCS應用程序,將顯示CodeComposerStudioSetup窗口。
在FactoryBoards中添加設置
在Family下選擇C55xx,將看到所有C55xx的仿真驅動,包括軟件仿真和硬件仿真;在Platform下選擇Simulator,在AvailableFactoryBoards中只顯示軟件仿真驅動,選中相應的驅動;雙擊C55xxRev4.0CPUFunctionalSimulator,可以在MySystem下看到所加入的驅動;點擊Save&Quit,將保存設置退出SetupCCStudiov3.1并啟動運行CCStudio。CCS文件名介紹
*.pjt:CCS定義的工程項目文件;*.c:C語言編寫的源程序文件;*.asm:匯編語言編寫的源程序文件;*.h:C語言程序的頭文件,包括DSP/BIOSAPI模塊的頭文件;*.lib:庫文件;*.cmd:鏈接命令文件;*.obj:由源文件編譯或匯編后所生成的目標文件;*.out:完成編譯、匯編、鏈接后所形成的可執(zhí)行文件,可在CCS監(jiān)控下調試和執(zhí)行;*.wks:工作空間文件;*.cdb:CCS的配置數據庫文件,是使用DSP/BIOSAPI模塊所必須的。匯編偽指令作用舉例.title緊跟其后的是用雙引號括起的源程序名.title“example”.end結束匯編命令,匯編程序將忽略此后的任何源語句,所以它是程序的最后語句放在匯編語言源程序的最后.data緊跟其后的是已初始化數據,通常含有數據表或預先初始化的數值
.datatable1:.int1,2,3,4.int5,6,7,8Table2:.word-1,-2,-3,-4.word-5,-6,-7,-8.int用來設置一個或多個16位無符號整型量常數.word用來設置一個或多個16位帶符號整型量常數.text緊跟其后的是匯編語言程序正文.bss.bss為未初始化變量保留存儲空間
.bssx,4
表示在數據存儲器中空出4個存儲單元存放變量x1,x2,x3,x4.sect建立包含代碼和數據的自定義段.sect”vectors”定義中斷服務程序段,緊隨其后的是復位向量和中斷向量常用偽指令一覽表匯編偽指令作用舉例.mmregs將TMS320各寄存器名定義為全局符號,這樣就可以直接引用寄存器(符號).set.set偽指令附一常數值給某個符號,也可以將符號常數賦給寄存器Shift.set5ld#shift,AAuxR1.setAR1MVMMAuxR1,sp.copy/.include從其他文件讀取源代碼語句。.copy“coeff.inc”.def指定定義在當前模塊中,但可被其他模塊使用的符號.defstart.global聲明符號為全局符號,使其在鏈接時可為其他模塊使用.global_c_int00.ref在當前塊中使用,但在其他模塊中定義的符號鏈接器命令文件的編寫和使用
鏈接命令文件中可以使用MEMORY命令和SECTIONS命令來定義目標系統(tǒng)的存儲器配置圖及段的映射。
MEMORY和SECTIONS鏈接偽指令,存儲器偽指令MEMEORY,用來定義目標系統(tǒng)的存儲器空間。段偽指令SECTIONS負責告訴鏈接器將輸入文件中用.text、.data、.bss、.sect等偽指令定義的段放到MEMORY命令描述的存儲器空間的什么位置。MEMORY偽指令的一般語法為:MEMORY{PAGE0:name1[(attr)]:original=constant,length=constant;…PAGEn:namen[(attr)]:original=constant,length=constant;}(1)PAGE指定存儲器空間頁面,最多255。通常PAGE0用于程序存儲器,PAGE1用于數據存儲器。如果不指定PAGE,鏈接器默認指定PAGE0。每一個PAGE代表一個完全獨立的地址空間。(2)name是存儲器區(qū)間的取名,可由1~64個字符組成,包括A~Z、a~z、$、.\、_。名稱對鏈接器沒有特殊的含義,只是用來區(qū)分鏈接器區(qū)間。在不同的PAGE里區(qū)間名可以相同,但有同一個PAGE里區(qū)間名不能相同,且不能重疊配置。(3)attr指定存儲區(qū)的1~4種屬性,屬性為任選項,利用屬性將輸出段定位到存儲器時加以限制。R:指定該存儲區(qū)可以讀。W:指定該存儲區(qū)可以寫。X:指定該存儲區(qū)可以裝入可執(zhí)行代碼。I:指定該存儲區(qū)可以進行初始化。如果不給存儲區(qū)指定屬性,默認為具有以上4種屬性,可以不受限制地將任何輸出段分配到該存儲區(qū)。(4)original指定存儲區(qū)的起始地址,可以簡寫為org或o,該值是一個16位二進制常數,可以用十進制、八進制或十六進制數表示。(5)length指定存儲區(qū)的長度,可以簡寫為len或l。SECTIONS偽指令語法格式如下:SECTIONS{name:[property[,property][,property]…]name:[property[,property][,property]…]name:[property[,property][,property]…]}鏈接器命令文件舉例MEMORY
{
PAGE0:VECT:origin=0x8000h,length0x040h
PAGE0:PROG:origin=0x8040h,length0x600h
PAGE1:DATA:origin=0x8000h,length0x400h
}
SECTIONS
{
.vectors>VECTPAGE0
.text
>PROGPAGE0
.bss
>DATAPAGE1
.const
>DATAPAGE1
};thisfunctionisFFT .title "FFT.asm" .mmregs .copy "coeff.inc“;從coeff.inc文件復制旋轉因子系數
.def _c_int00sine1: .usect "sine1",512;512=N/2,N=1024(最大N=1024)
cosine1: .usect "cosine1",512
sine: .usect "sine",512;512=N/2,N=1024(最大N=1024)
cosine: .usect "cosine",512fft_data: .usect "fft_data",1024
d_input: .usect "d_input",1024 fft_out: .usect "fft_out",512STACK .usect "STACK",10.bss d_twid_idx,1 .bss d_data_idx,1 .bss d_grps_cnt,1 .sect "fft_prg“
。。。。。。。MEMORY{ PAGE0: EPROM:org=0E000h,len=1000h VECS:org=0FF80h,len=0080h PAGE1: SPRAM:org=0060h,len=0020h DARAM:org=0200h,len=1000h RAM:org=8000h,len=1500h}SECTIONS{sine1:>EPROMPAGE0cosine1:>EPROM PAGE0fft_prg:>EPROMPAGE0.vectors:>VECSPAGE0.bss:>SPRAMPAGE1sine :align(1024){}>DARAMPAGE1cosine:align(1024){}>DARAMPAGE1d_input:>RAMPAGE1fft_data:>RAMPAGE1fft_out:>RAMPAGE1STACK:>SPRAMPAGE1}存儲空間名稱分配各個段到各個存儲空間該偽指令就是用來指定存儲器的模型該偽指令將輸出段分配到指定的存儲器范圍程序存儲器…E000…E1FFE200…E3FFE400…E4A2FF80…EFFF正弦系數表余弦系數表程序代碼0000…005F0060006100620063…006C…0400…05FF0800…09FF8000…87FF8800…8FFF9000…93FF數據存儲器sine1
cosine1
fft_prg
.vectors.bss
存儲器映射寄存器暫存單元堆棧正弦系數表余弦系數表輸入數據FFT結果(實部、虛部)FFT結果(功率譜)sinecosined_input
fft_data
fft_out
用CCS開發(fā)簡單的程序1.創(chuàng)建新的工程文件工程文件中包含著設計中所有的源代碼文件、鏈接器命令文件、庫函數、頭文件等。(1)在CCS的安裝目錄的myprojects子目錄下創(chuàng)建一個myfile1目錄。
(2)啟動CCS,在Project菜單中選擇New項,在Project中輸入myfile1,CCS將創(chuàng)建一個名為myfile1.pjt的工程。
2.將文件添加到工程中(1)新建源文件
執(zhí)行菜單file/New/sourcefiles,并把文件保存在myfile工程文件夾下。(2)在工程中添加源文件執(zhí)行菜單project/addfilestoproject,把此文件添加到工程中。3.生成和運行程序(1)選擇菜單命令Project→RebuildAll,對工程重新編譯、匯編和鏈接,主窗口下方的信息窗口將顯示build進行匯編、編譯和鏈接的相關信息。(2)選擇菜單命令File→LoadProgram,在當前目錄的Debug目錄下選擇myfile.out并打開,將Build生成的程序加載到DSP中。
(3)選擇菜單命令Debug→Run或在Debug工具欄上單擊Run按鈕,運行該程序。
舉例實現數組a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19},x[20]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]的初始化,并將數據存儲器中的數組x[20]復制到數組y[20],將數據存儲器中的a[20]寫入到程序存儲器PROM(2000H-2013H),再將程序存儲器PROM中的20個數據存入數據存儲器DATA(0200H-0213H)1.編寫匯編源程序
.mmregs.dataTBL:.word0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19.word1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1PROM:.usect“PROM”,20.bssa,20.bssx,20.bssy,20DATA.usect“DATA”,20
.textStart:STM#a,AR1RPT#39MVPDTBL,*AR1+STM#x,AR2STM#y,AR3RPT#19MVDD*AR2+,*AR3+STM#a,AR1LD#PROM,ASTM#19,AR3LOOP:WRITA*AR1+ADD#1,A,ABANZLOOP,*AR3-LD#PROM-1,ASTM#DATA,AR1ST#19,BRCRPTBLOOP1ADD#1,A,ALOOP1:READA*AR1+WAIT:NOPBWAIT2.建立匯編源程序在CCS環(huán)境下,點擊file/new/sourcefile菜單命令,打開一個空白文檔,將匯編程序輸入。單擊file/save菜單命令,在D:\programfiles\ti\myprojects下保存文件名為mymove,并選擇保存類型為*.asm。3.建立鏈接命令文件MEMORY{PAGE0:RAM:origin=1000h,length=800hRAM1:origin=2000h,length=300hPAGE1:DARAM1:origin=0100h,length=100hDARAM2:origin=0200h,length=100h}
SECTIONS{.data:>RAMPAGE0.text:>RAMPAGE0PROM:>RAM1PAGE0.bss:>DARAM1PAGE1DATA:>DARAM2PAGE1}4.創(chuàng)建一個新工程在project菜單中選擇new項,彈出projectcreation窗口,在project欄中輸入mymove,單擊“完成”按鈕,CCS將創(chuàng)建一個名為mymove.pjt的工程,此文件保存了工程的設置信息及工程中的文件引用情況。5.將有關文件添加到工程中從project菜單中選取addfilestoproject命令,選擇文件mymove.asm,雙擊“找開”按鈕,將mymove.asm添加到工程中。從project菜單中選取addfilestoproject命令,選擇文件mymove.cmd,將mymove.cmd添加到工程中。6.匯編、編譯和鏈接產生.out文件點擊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 武術套路與散打錦標賽企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 消費電子產品設計行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 建筑聲學模擬軟件行業(yè)跨境出海戰(zhàn)略研究報告
- 枸杞多糖能量補充飲企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 電子競技俱樂部行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 高性能導熱油定制行業(yè)跨境出海戰(zhàn)略研究報告
- 對統(tǒng)編版高中語文教材中幾個知識性問題的探析
- 2025屆高考作文備考訓練:破思維之繭綻自由之花
- 豐南幼兒園民主管理制度
- 發(fā)票和收據使用管理制度
- Q∕SY 02098-2018 施工作業(yè)用野營房
- 六年級下冊心理健康教案-第三十一課 為升學做準備 釋放壓力 輕松迎考|北師大版
- 浙教版勞動五年級下冊 項目三 任務三 環(huán)保小車我來造 教案
- 隔離開關培訓課件
- 山東大學畢業(yè)論文答辯通用ppt模板
- 35kV高壓電纜敷設專項施工方案(完整版)
- 天井施工方法及安全管理建議
- 隔膜壓縮機(課堂PPT)
- 失效模式分析報告范例
- 風電齒輪箱結構原理及維護知識
- 皮帶通廊及皮帶機施工方案 (1)
評論
0/150
提交評論