




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于MATLAB 的DSP 調試方法時間:2009-06-02 來源: 作者:劉瑞華 潘建軍 點擊:755 字體大小:【大 中 小】 MATLAB 具有強大的分析、計算和可視化功能,利用MATLAB 提供的數十個專業工具箱,可以方便、靈活地實現對自動控制、信號處理、通信系統等的算法分析和仿真,是算法設計人員和工程技術人員必不可少的軟件工具。 數字信號處理器(DSP)作為一種可編程專用芯片,是數字信號處理理論實用化過程的重要技術工具,在語音處理、圖像處理等技術領域得到了廣泛的應用。但對于算法設計人員來講,利用匯編語言或C 語言進行DSP 功能開發,對于具有周期長、效率低的缺點,不利于算法驗證和產
2、品的快速開發。 由MathWorks 公司和TI 公司聯合開發的MATLAB Link for CCS Development Tools(簡稱CCSLink)是MATLAB6.5 版本(Release13)中增加的一個全新的工具箱,它提供了MATLAB、CCS 和DSP 目標板的接口,利用此工具可以像操作MATLAB變量一樣來操作DSP 器件的存儲器和寄存器,使開發人員在MATLAB 環境下完成對DSP 的操作,從而極大地提高DSP 應用系統的開發進程。 本文結合具體例證,介紹基于MATLAB 的DSP 應用程序調試方法。1 CCSLink 初步 CCSLink 工具通過雙向連接將MATLA
3、B、CCS 和DSP 目標板聯系起來,允許開發者利用MATLAB 強大的可視化、數據處理和分析函數對來自CCS 的數據進行分析和處理,極大地簡化TI 公司DSP 軟件的分析、調試和驗證過程。三者關系如圖1示。 圖1 CCSLink連接關系 CCSLink 的主要特點為:在MATLAB 環境下完成對DSP器件的調試、數據傳遞和驗證;在MATLAB 和DSP 之間實現數據實時傳遞;支持XDS510 和XDS560 仿真器;提供嵌入式對象,可以訪問C/C+變量;擴展了MATLAB 和eXpressDSP工具調試能力。 MATLAB 6.5 版集成了CCSLink1.0 工具,支持CCS 能識別的所有
4、板卡及硬件DSP,包括TIC2000、C5000、C6000 DSP及EVM 板、DSK 板、simulator 及任何符合標準的用戶板和第三方板。CCSLink 正常工作除了需要MATLAB 及其信號處理工具箱外,還需要TI 的編譯器(compiler)、匯編器(assembler)、鏈接器(linker)、CCS IDE2.1、CCS 配置工具信其他軟件工具。在MATLAB 環境下輸入命令help ccslink若CCSLink 已正確安裝,則會顯示產品信息及進行CCS 和RTDX 操作的函數列表:MATLAB Link for Code Composer Studio(tm)Versio
5、n 1.0 (R13) 28-Jun-2002。若MATLAB 不能返回信息,則表明CCSLink 未安裝成功,需進行重新安裝。2 CCSLink 對象的建立 在對DSP 進行操作之前,應該首先建立一個DSP 目標。對于配置了多DSP 系統的用戶,CCSLink 提供了兩種選擇DSP目標的工具:ccsboardinfo 函數和boardprosel 圖形用戶界面,用戶可以根據返回值和自己需求選擇相應的對象。以采用圖形用戶界面為例,若配置有XDS510 Emulator 和C5416 Simulator 二種DSP 系統,運行boardNum,procNum = boardprocsel,則MA
6、TLAB 通過對CCS 配置的自動檢測,出現圖2 所示的目標選擇界面。本文根據需要選擇硬件仿真器C54xxXDS510Emulator 并點擊Done,則可返回板卡編號和處理器編號:boardNum=1,procNum=0。 圖2 CCSLink對象選擇 利用ccsdsp 函數可以確立一個DSP 對象。ccsdsp 以板卡編號和處理器編號為參數,并在建立鏈接對象后返回其它屬性,如處理器型號、處理器名稱等。例如,運行cc=ccsdsp('boardnum',boardNum, 'procnum', procNum),則建立起一個CCS IDE 對象的句柄cc。從而
7、可以通過cc,在MATLAB 下實現對CCS 的操作并控制DSP 芯片。3 CCSLink 調試DSP 代碼實例 建立起MATLAB 鏈接之后,就可以通過CCS 為DSP 目標產生可執行代碼,并進行編譯、調試和分析。在以下的介紹中,均以MATLAB 自帶的工程文件為例。3.1 加載DSP 目標板 在MATLAB 環境執行以下代碼:projfile = fullfile( matlabroot, 'toolbox', 'ccslink', 'ccsdemos', 'ccstutorial','ccstut_54xx.pjt&
8、#39;)%選擇工程文件projpath = fileparts(projfile) %指定工程文件路徑open(cc,projfile)%打開工程文件visible(cc,1)%使CCS IDE 前臺可見cd(cc,projpath)%改變MATLAB 工作路徑build(cc,'all',60)%編譯工程load(cc,'ccstut_54xx.out',30)%加載可執行文件 則如代碼注釋所示,在MATLAB 環境下完成了對工程文件的調入、編譯,生成可執行文件并將其加載到DSP 目標板。利用鼠標操作切換到CCS 界面,可以看到在MATLAB 下已經完成了對
9、CCS 的各種操作過程,如圖3 所示。 圖3 CCSLink調試DSP代碼實例3.2 利用CCSLink 連接調試訪問DSP 內存 在編譯并加載.out 文件后,可以直接由CCSLink 讀取目標符號表并獲取變量在DSP 內存中的地址。如輸入ddatA =dec2hex(address(cc,'ddat'),將返回變量ddat 的地址和所在頁:23AC,0000。 在MATLAB 中,可以控制CCS IDE 中程序的顯示及斷點的增加和刪除,并控制程序代碼的執行和暫停,讀寫DSP 的內存變量。例如,執行以下程序:open(cc,'ccstut.c','te
10、xt')%在CCS 中打開ccstut.c 文件open(cc,'ccstut_54xx.cmd','text')%在CCS 中打開ccstut_54xx.cmd 文件activate(cc,'ccstut.c','text')%將ccstut.c 作為當前的活動文件insert(cc,'ccstut.c',64)%在第64 行加入斷點halt(cc)%暫停CPUrestart(cc) %繼續與CCS 保持聯系run(cc,'runtohalt',20)%DSP 程序執行到斷點ddatV =
11、 read(cc,address(cc,'ddat'),'single',4) %(1)讀取C 代碼初始化數據ddatidatV = read(cc,address(cc,'idat'),'int16',4) %(2)讀取C代碼初始化數據idatwrite(cc,address(cc,'ddat'),single(pi, 12.3, exp(-1), sin(pi/4) % (3)修改DSP 內存中的數據ddatwrite(cc,address(cc,'idat'),int16(1:4)% (4)修
12、改DSP 內存中的數據idatrun(cc,'runtohalt',20) %從斷點處繼續執行ddatV = read(cc,address(cc,'ddat'),'single',4)% (5)讀取修改后的數據ddatidatV = read(cc,address(cc,'idat'),'int16',4) %(6)讀取修改后的數據idat 閱讀本例工程文件可知,在C 代碼中,變量初始化值為ddat=16.3,-2.13,5.1,11.8,idat=1,508,647,7000。執行上述(1)、(2)兩語句,在M
13、ATLAB 中獲得了這兩個變量的值ddatV 和idatV。經過(3)、(4)兩語句的修改,ddat 和idat 分別改為了新值ddat=3.1416,12.3,0.3679,0.7071和idat=1,2,3,4。這一修改,可從(5)、(6)兩語句的執行在MATLAB 中得到驗證,同時也可在CCS IDE 下通過變量觀測器進行證實。 在MATLAB 下,同樣可以通過regread 和regwrite 來對CPU寄存器進行讀寫操作。如tReg = regread(cc,'AL','2scomp') % 按二進制補碼方式讀取ALregread(cc,'TR
14、N','binary') % 按無符號二進制數讀取TRNregwrite(cc,'AH','FFFF','binary') % 按無符號二進制數讀寫AH3.3 利用CCSLink 嵌入式對象調試訪問DSP 內存 利用MATLAB 的面向對象編程技術和CSLink,可以為目標程序中的所有C 符號創建嵌入式對象,并通過對象來操作該C 符號。 仍以上述程序為例,首先復位DSP,并創建一個嵌入式對象:restart(cc) % 復位程序,使PC 指向程序入口處goto(cc,'main') %將PC 定位到C 主程
15、序入口cvar = createobj(cc,'idat') %(7)為操作嵌入式對象idat 創建MATLAB 對象cvar 語句(7)創建了指向DSP 中C 符號的MATLAB 對象,從而可以在MATLAB 環境下實現對其全部或部分讀取和修改。read(cvar)%(8)將嵌入式數組讀入到MATLAB 工作空間read(cvar,2)%只讀取第2 個元素write(cvar,4,7001)%(9)將第4 個元素修改為7001set(cvar,'size',2)%(10)將對象減小到2 個元素 語句(8)將指向idat 的嵌入式數組cvar 讀入MATLAB,
16、在語句(9)中對其第4 個元素進行了修改,而在語句(10)中對數組的大小進行了改變。 通過CCSLink,不僅可以為數組變量創建對象,而且也可以為結構體變量創建對象并進行相應的操作,如:cvar = createobj(cc,'myStruct')%創建指向C 結構體的MATLAB 對象write(cvar,'iz', 'Simulink') %修改結構體的字符串iz 域為Simulinkcstring = getmember(cvar,'iz')%讀取該域到MATLABwrite(cstring,1,'s')%該
17、寫字符串的首字符readnumeric(cstring)%按數值方式讀取字符串 上述5 條語句,均通過MATLAB 環境下的對象cvar,實現了對DSP 的C 語言程序中結構體變量myStruct 的讀寫操作和修改,具有很大的方便性。 通過CCSlink,無論對CCS IDE 建立了連接對象還是嵌入式對象,均可在MATLAB 環境下進行操作,達到了DSP 內部各種變量的讀寫和修改,并進行相關的調試過程,具有很大的方便性。對于上述示例所有的操作執行結果,均可以在MATLAB和CCS IDE 環境下進行觀測和驗證。4 結束語 本文簡要討論了基于MATLAB 的DSP 程序調試方法,描述了CCSLi
18、nk 與CCS IDE 的基本概念,介紹了建立CCS 對象的過程,并以MATLAB 提供的實際工程文件為例,演示了利用CCSLink 連接和嵌入式對象進行C 變量操作的實際過程,并對其執行過程和結果進行了簡要解釋。 應該說明的是,MATLAB提供了大量的進行DSP程序調試的函數,本文只涉及到了其中極少的一部分。要充分利用MATLAB的強大功能進行更深層次的DSP程序調試,應進一步參考MathWorks公司提供的技術資料MATLAB Link for Code Composer Studio Development Tools。Tags:DSP Matlab 上一篇:在Nexar上實現基于RTO
19、S51的嵌入式系統下一篇:如何搭建Xilinx FPGA開發環境·定點DSP與浮點DSP的比較·LabVIEW 和Matlab混合編程綜述·數學工具常見問題集·MATLAB語言與自動控制系統設計·利用TL16C750實現DSP與PC機的高速串行通信·基于DSP的藍牙(Bluetooth)嵌入式系統應用·CCS中如何看程序運行的時鐘周期·ADSP2189M在船舶自動識別系統開發中的應用推薦文章· Proteus 與單片機實時動態仿真· 基于FPGA/CPLD設計與實現UART(VHDL· 基于VHDL 的全數字鎖相環的設計· 如何仿真IP核(建立modelsim仿真庫· Modelsim 包會教程· IIR濾波器matlab源程序· 使用 FPGA 控制 VGA 顯示· Nios I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司背景墻策劃方案
- 公司春季放風箏活動方案
- 公司游園小活動策劃方案
- 公司職稱評審策劃方案
- 公司群體互動策劃方案
- 公司群體性運動活動方案
- 公司節前大掃除活動方案
- 公司知識跨年活動方案
- 公司管理規范年活動方案
- 公司旅游預熱引流活動方案
- 酒店客戶關系管理試題及答案
- 高壓氧試題(含答案)
- 傳染病人轉診制度
- Notre-Dame de Paris 巴黎圣母院音樂劇歌詞(中法雙語全)
- 物理學史考試題庫及答案(含各題型)
- 深靜脈血栓預防和護理評估
- 扣眼穿刺法課件
- 術后尿潴留預防與處理
- 2025年中級育嬰員技能等級證書理論全國考試題庫(含答案)
- 2025年果樹種植技術培訓與咨詢服務合同范本
- 乳腺結節疾病的專業知識課件
評論
0/150
提交評論