版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第四章
DSP的開發(fā)環(huán)境與工具
主要內(nèi)容軟件開發(fā)過程及開發(fā)工具CCS集成開發(fā)環(huán)境
CCS集成開發(fā)環(huán)境
TMS320C54x代碼生成工具,如匯編器、鏈接器、C/C++編譯器、建庫工具等。
CCS集成開發(fā)環(huán)境(IntegratedDevelopongEnvirorment,IDE),包括編輯器、工程管理工具、調(diào)試工具等。
DSP/BIOS(BasicInputandOutputSystem)插件及應(yīng)用程序接口API(ApplicationProgranInterface)。
RTDX(RealTimeDataExchange)實(shí)時(shí)數(shù)據(jù)交換插件、主機(jī)(Host)接口及相應(yīng)的API。CCS系統(tǒng)安裝CCS對(duì)PC機(jī)的最低要求為Windows95、32MRAM、100M剩余硬盤空間、奔騰90以上處理器、SVGA顯示器(分辨率800×600以上)。CCS系統(tǒng)設(shè)置在安裝CCS之后、運(yùn)行CCS軟件之前,首先需要運(yùn)行CCS設(shè)置程序,根據(jù)用戶所擁有的軟、硬件資源對(duì)CCS進(jìn)行適當(dāng)?shù)呐渲?。啟?dòng)SetupCCS應(yīng)用程序,將顯示CodeComposerStudioSetup窗口。
在FactoryBoards中添加設(shè)置
在Family下選擇C55xx,將看到所有C55xx的仿真驅(qū)動(dòng),包括軟件仿真和硬件仿真;在Platform下選擇Simulator,在AvailableFactoryBoards中只顯示軟件仿真驅(qū)動(dòng),選中相應(yīng)的驅(qū)動(dòng);雙擊C55xxRev4.0CPUFunctionalSimulator,可以在MySystem下看到所加入的驅(qū)動(dòng);點(diǎn)擊Save&Quit,將保存設(shè)置退出SetupCCStudiov3.1并啟動(dòng)運(yùn)行CCStudio。CCS文件名介紹
*.pjt:CCS定義的工程項(xiàng)目文件;*.c:C語言編寫的源程序文件;*.asm:匯編語言編寫的源程序文件;*.h:C語言程序的頭文件,包括DSP/BIOSAPI模塊的頭文件;*.lib:庫文件;*.cmd:鏈接命令文件;*.obj:由源文件編譯或匯編后所生成的目標(biāo)文件;*.out:完成編譯、匯編、鏈接后所形成的可執(zhí)行文件,可在CCS監(jiān)控下調(diào)試和執(zhí)行;*.wks:工作空間文件;*.cdb:CCS的配置數(shù)據(jù)庫文件,是使用DSP/BIOSAPI模塊所必須的。匯編偽指令作用舉例.title緊跟其后的是用雙引號(hào)括起的源程序名.title“example”.end結(jié)束匯編命令,匯編程序?qū)⒑雎源撕蟮娜魏卧凑Z句,所以它是程序的最后語句放在匯編語言源程序的最后.data緊跟其后的是已初始化數(shù)據(jù),通常含有數(shù)據(jù)表或預(yù)先初始化的數(shù)值
.datatable1:.int1,2,3,4.int5,6,7,8Table2:.word-1,-2,-3,-4.word-5,-6,-7,-8.int用來設(shè)置一個(gè)或多個(gè)16位無符號(hào)整型量常數(shù).word用來設(shè)置一個(gè)或多個(gè)16位帶符號(hào)整型量常數(shù).text緊跟其后的是匯編語言程序正文.bss.bss為未初始化變量保留存儲(chǔ)空間
.bssx,4
表示在數(shù)據(jù)存儲(chǔ)器中空出4個(gè)存儲(chǔ)單元存放變量x1,x2,x3,x4.sect建立包含代碼和數(shù)據(jù)的自定義段.sect”vectors”定義中斷服務(wù)程序段,緊隨其后的是復(fù)位向量和中斷向量常用偽指令一覽表匯編偽指令作用舉例.mmregs將TMS320各寄存器名定義為全局符號(hào),這樣就可以直接引用寄存器(符號(hào)).set.set偽指令附一常數(shù)值給某個(gè)符號(hào),也可以將符號(hào)常數(shù)賦給寄存器Shift.set5ld#shift,AAuxR1.setAR1MVMMAuxR1,sp.copy/.include從其他文件讀取源代碼語句。.copy“coeff.inc”.def指定定義在當(dāng)前模塊中,但可被其他模塊使用的符號(hào).defstart.global聲明符號(hào)為全局符號(hào),使其在鏈接時(shí)可為其他模塊使用.global_c_int00.ref在當(dāng)前塊中使用,但在其他模塊中定義的符號(hào)鏈接器命令文件的編寫和使用
鏈接命令文件中可以使用MEMORY命令和SECTIONS命令來定義目標(biāo)系統(tǒng)的存儲(chǔ)器配置圖及段的映射。
MEMORY和SECTIONS鏈接偽指令,存儲(chǔ)器偽指令MEMEORY,用來定義目標(biāo)系統(tǒng)的存儲(chǔ)器空間。段偽指令SECTIONS負(fù)責(zé)告訴鏈接器將輸入文件中用.text、.data、.bss、.sect等偽指令定義的段放到MEMORY命令描述的存儲(chǔ)器空間的什么位置。MEMORY偽指令的一般語法為:MEMORY{PAGE0:name1[(attr)]:original=constant,length=constant;…PAGEn:namen[(attr)]:original=constant,length=constant;}(1)PAGE指定存儲(chǔ)器空間頁面,最多255。通常PAGE0用于程序存儲(chǔ)器,PAGE1用于數(shù)據(jù)存儲(chǔ)器。如果不指定PAGE,鏈接器默認(rèn)指定PAGE0。每一個(gè)PAGE代表一個(gè)完全獨(dú)立的地址空間。(2)name是存儲(chǔ)器區(qū)間的取名,可由1~64個(gè)字符組成,包括A~Z、a~z、$、.\、_。名稱對(duì)鏈接器沒有特殊的含義,只是用來區(qū)分鏈接器區(qū)間。在不同的PAGE里區(qū)間名可以相同,但有同一個(gè)PAGE里區(qū)間名不能相同,且不能重疊配置。(3)attr指定存儲(chǔ)區(qū)的1~4種屬性,屬性為任選項(xiàng),利用屬性將輸出段定位到存儲(chǔ)器時(shí)加以限制。R:指定該存儲(chǔ)區(qū)可以讀。W:指定該存儲(chǔ)區(qū)可以寫。X:指定該存儲(chǔ)區(qū)可以裝入可執(zhí)行代碼。I:指定該存儲(chǔ)區(qū)可以進(jìn)行初始化。如果不給存儲(chǔ)區(qū)指定屬性,默認(rèn)為具有以上4種屬性,可以不受限制地將任何輸出段分配到該存儲(chǔ)區(qū)。(4)original指定存儲(chǔ)區(qū)的起始地址,可以簡寫為org或o,該值是一個(gè)16位二進(jìn)制常數(shù),可以用十進(jìn)制、八進(jìn)制或十六進(jìn)制數(shù)表示。(5)length指定存儲(chǔ)區(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文件復(fù)制旋轉(zhuǎn)因子系數(shù)
.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}存儲(chǔ)空間名稱分配各個(gè)段到各個(gè)存儲(chǔ)空間該偽指令就是用來指定存儲(chǔ)器的模型該偽指令將輸出段分配到指定的存儲(chǔ)器范圍程序存儲(chǔ)器…E000…E1FFE200…E3FFE400…E4A2FF80…EFFF正弦系數(shù)表余弦系數(shù)表程序代碼0000…005F0060006100620063…006C…0400…05FF0800…09FF8000…87FF8800…8FFF9000…93FF數(shù)據(jù)存儲(chǔ)器sine1
cosine1
fft_prg
.vectors.bss
存儲(chǔ)器映射寄存器暫存單元堆棧正弦系數(shù)表余弦系數(shù)表輸入數(shù)據(jù)FFT結(jié)果(實(shí)部、虛部)FFT結(jié)果(功率譜)sinecosined_input
fft_data
fft_out
用CCS開發(fā)簡單的程序1.創(chuàng)建新的工程文件工程文件中包含著設(shè)計(jì)中所有的源代碼文件、鏈接器命令文件、庫函數(shù)、頭文件等。(1)在CCS的安裝目錄的myprojects子目錄下創(chuàng)建一個(gè)myfile1目錄。
(2)啟動(dòng)CCS,在Project菜單中選擇New項(xiàng),在Project中輸入myfile1,CCS將創(chuàng)建一個(gè)名為myfile1.pjt的工程。
2.將文件添加到工程中(1)新建源文件
執(zhí)行菜單file/New/sourcefiles,并把文件保存在myfile工程文件夾下。(2)在工程中添加源文件執(zhí)行菜單project/addfilestoproject,把此文件添加到工程中。3.生成和運(yùn)行程序(1)選擇菜單命令Project→RebuildAll,對(duì)工程重新編譯、匯編和鏈接,主窗口下方的信息窗口將顯示build進(jìn)行匯編、編譯和鏈接的相關(guān)信息。(2)選擇菜單命令File→LoadProgram,在當(dāng)前目錄的Debug目錄下選擇myfile.out并打開,將Build生成的程序加載到DSP中。
(3)選擇菜單命令Debug→Run或在Debug工具欄上單擊Run按鈕,運(yùn)行該程序。
舉例實(shí)現(xiàn)數(shù)組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]的初始化,并將數(shù)據(jù)存儲(chǔ)器中的數(shù)組x[20]復(fù)制到數(shù)組y[20],將數(shù)據(jù)存儲(chǔ)器中的a[20]寫入到程序存儲(chǔ)器PROM(2000H-2013H),再將程序存儲(chǔ)器PROM中的20個(gè)數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)器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)境下,點(diǎn)擊file/new/sourcefile菜單命令,打開一個(gè)空白文檔,將匯編程序輸入。單擊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)建一個(gè)新工程在project菜單中選擇new項(xiàng),彈出projectcreation窗口,在project欄中輸入mymove,單擊“完成”按鈕,CCS將創(chuàng)建一個(gè)名為mymove.pjt的工程,此文件保存了工程的設(shè)置信息及工程中的文件引用情況。5.將有關(guān)文件添加到工程中從project菜單中選取addfilestoproject命令,選擇文件mymove.asm,雙擊“找開”按鈕,將mymove.asm添加到工程中。從project菜單中選取addfilestoproject命令,選擇文件mymove.cmd,將mymove.cmd添加到工程中。6.匯編、編譯和鏈接產(chǎn)生.out文件點(diǎn)擊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高一英語 總復(fù)習(xí)資料
- 山東大學(xué)威海校區(qū)614綜合A(含法理學(xué)、憲法學(xué)、行政法學(xué))之法理學(xué)考研沖刺密押題
- 主題:我是中國人
- 師徒結(jié)對(duì)總結(jié)范文(7篇)001
- 小學(xué)語文老師業(yè)務(wù)工作總結(jié)集錦3篇
- 網(wǎng)絡(luò)營銷 第3版 教案全套 魏亞萍 6.1 網(wǎng)絡(luò)視頻營銷認(rèn)知-10-1.2網(wǎng)絡(luò)推廣效果評(píng)估
- 光伏纜承攬合同
- 2025年石油鉆采機(jī)械項(xiàng)目合作計(jì)劃書
- 荊州出租車租賃合同
- 辦公場(chǎng)地租賃合同場(chǎng)地使用合同范文
- 深植心中的勞動(dòng)教育(2023年黑龍江齊齊哈爾中考語文試卷議論文閱讀題及答案)
- 城市合伙人合同協(xié)議書
- 完整版金蝶EAS財(cái)務(wù)系統(tǒng)操作手冊(cè)
- 2024村居后備干部試題庫及答案(完整版)
- 醫(yī)院題材小品劇本;瘋子當(dāng)醫(yī)生
- 30萬噸合成氨50萬噸尿素裝置拆除項(xiàng)目施工組織設(shè)計(jì)
- 動(dòng)物遺傳學(xué)智慧樹知到期末考試答案章節(jié)答案2024年西南大學(xué)
- 2024年7月國家開放大學(xué)??啤缎姓M織學(xué)》期末紙質(zhì)考試試題及答案
- 天津市河北區(qū)2022-2023學(xué)年七年級(jí)上學(xué)期期末地理試題
- 呼吸科醫(yī)院感染危險(xiǎn)因素評(píng)估
- 國際戰(zhàn)略環(huán)境概述
評(píng)論
0/150
提交評(píng)論