亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于Matlab的DSP調(diào)試及直接代碼生成方法

        2008-04-12 00:00:00李學(xué)勇劉建華
        現(xiàn)代電子技術(shù) 2008年20期

        摘 要:為了提高DSP程序的開(kāi)發(fā)效率以及處理程序運(yùn)行過(guò)程中出現(xiàn)的大量數(shù)據(jù),介紹如何利用Matlab中的CCSLink結(jié)合CCS進(jìn)行DSP程序的調(diào)試以及代碼的直接生成。利用從概念設(shè)計(jì)到實(shí)時(shí)實(shí)現(xiàn)的集成、統(tǒng)一的開(kāi)發(fā)環(huán)境,完成代碼產(chǎn)生、代碼加載、執(zhí)行以及與目標(biāo)DSP進(jìn)行通信。最后通過(guò)實(shí)例驗(yàn)證了該方案的有效性。

        關(guān)鍵詞:Matlab;CCSLink;CCS;直接代碼

        中圖分類號(hào):TP368.1文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1004373X(2008)2006803

        Methods of Debugging DSP and Producing Codes Based on Matlab

        LENG Bin1,LI Xueyong2,LIU Jianhua1

        (1.Jiangxi Tourism Commerce College,Nanchang,330063,China;2.Nanchang Hangkong University,Nanchang,330063,China)

        Abstract:In order to improve the efficient of DSP program development and handle the data in process of running program,CCSLink is used to debug DSP program in Matlab and direct code production with CCS.In the integrate and uniform development circumstance,in which the designing can be accomplished from concept to real-time actualizing,producing code,loading code,performing code and communicating with DSP can be all completed.Finally the examples validate the method.

        Keywords:Matlab;CCSLink;CCS;direct code

        Matlab作為一種有效的信號(hào)處理工具,已經(jīng)滲透到DSP的設(shè)計(jì)當(dāng)中[1]。開(kāi)發(fā)者在將一個(gè)新的數(shù)字信號(hào)處理算法應(yīng)用于實(shí)際前,一般是先用Matlab進(jìn)行模擬驗(yàn)證,當(dāng)模擬結(jié)果滿意時(shí)再把算法修改成C或DSP匯編語(yǔ)言通過(guò)CCS在目標(biāo)DSP上實(shí)現(xiàn),并比較實(shí)際應(yīng)用與模擬的結(jié)果以發(fā)現(xiàn)誤差,如此反復(fù)進(jìn)行。在較新版本的Matlab(6.0以上)中提供了Matlab與DSP的統(tǒng)一集成環(huán)境后,眾多學(xué)者對(duì)Matlab環(huán)境下的DSP調(diào)試進(jìn)行了研究[2-4]。文獻(xiàn)[2-4]從CCSLink的角度出發(fā),對(duì)Matlab環(huán)境下的DSP調(diào)試進(jìn)行了原理及思路上的闡述,但均未涉及到直接代碼生成。本文在介紹CCSLink的連接對(duì)象、嵌入式對(duì)象和RTDX對(duì)象的基礎(chǔ)上,詳細(xì)闡述Simulink環(huán)境下的直接代碼生成。

        1 CCSLink及ETTIC2000概述

        Matlab具有強(qiáng)大的分析、計(jì)算和可視化功能,但處理速度慢;DSP具有快速的信號(hào)處理能力,但是其CCS的編譯環(huán)境中數(shù)據(jù)可編輯和分析能力不如Matlab;而MathWorks公司和TI公司聯(lián)合開(kāi)發(fā)的Matlab Link for CCS Development Tools(CCSLink)和Embedded Target for the TI TMS320C2000 DSP Platform(ETTIC2000),CCSLink提供了Matlab和CCS的接口,能把Matlab和TI CCS及目標(biāo)DSP連接起來(lái)。利用此工具可以像操作Matlab變量一樣來(lái)操作TI DSP的存儲(chǔ)器或寄存器。CCSLink支持CCS能夠識(shí)別的任何目標(biāo)板(C200,C5000,C600),此工具用于DSP程序的調(diào)試過(guò)程。而CCSLink與ETTIC2000的配合使用,可直接由Matlab的Simulink模型生成TIC2000DSP的可執(zhí)行代碼,能在集成、統(tǒng)一的Matlab環(huán)境下完成DSP的整個(gè)開(kāi)發(fā)過(guò)程。

        2 CCSLink 環(huán)境下的DSP調(diào)試

        CCSLink向用戶提供了3個(gè)組件內(nèi)容,如圖1所示。

        2.1 CCSLink的接口對(duì)象

        2.1.1 CCS IDE的連接對(duì)象

        該對(duì)象支持TI的C2000/5000/6000系列DSP,利用此對(duì)象可創(chuàng)建CCS IDE和Matlab的連接。用戶可以編寫(xiě)用于DSP程序的Matlab語(yǔ)言批處理腳本,從Matlab的命令窗中直接運(yùn)行CCS IDE中的應(yīng)用程序,向硬件DSP的存儲(chǔ)器或寄存器發(fā)送或取出數(shù)據(jù),檢查DSP的狀態(tài),停止或啟動(dòng)程序在DSP中的運(yùn)行。

        2.1.2 與RTDX的連接對(duì)象

        該對(duì)象提供Matlab和硬件DSP之間的實(shí)時(shí)通信通道。它允許用戶在主機(jī)和目標(biāo)板之間進(jìn)行實(shí)時(shí)的數(shù)據(jù)交換而不用考慮目標(biāo)程序的運(yùn)行。RTDX連接對(duì)象實(shí)際上是CCS連接對(duì)象的一個(gè)子類,在創(chuàng)建CCS連接對(duì)象的同時(shí)創(chuàng)建RTDX連接對(duì)象,它們不能分別創(chuàng)建。

        2.1.3 嵌入式對(duì)象

        在Matlab環(huán)境中創(chuàng)建一個(gè)可以代表嵌入在目標(biāo)C程序中的變量的對(duì)象。利用嵌入式對(duì)象可直接訪問(wèn)嵌入在目標(biāo)DSP的存儲(chǔ)器和寄存器中的變量,即把目標(biāo)C程序中的變量作為Matlab的一個(gè)變量來(lái)對(duì)待,并把編輯后的信息反返回到DSP程序中。所有這些操作均在Matlab環(huán)境下完成。

        2.2 CCS IDE連接對(duì)象應(yīng)用

        CCS IDE連接對(duì)象提供Matlab與CCS IDE和目標(biāo)DSP的連接,利用此連接可以在Matlab環(huán)境中控制和操作DSP中的應(yīng)用程序;利用Matlab中強(qiáng)大的計(jì)算、分析和可視化工具來(lái)分析和對(duì)比目標(biāo)程序運(yùn)行過(guò)程中的結(jié)果;而嵌入式對(duì)象則提供Matlab對(duì)DSP內(nèi)存中的變量進(jìn)行實(shí)時(shí)訪問(wèn)和控制,這樣大大縮短嵌入式應(yīng)用程序的開(kāi)發(fā)調(diào)試周期。本文以運(yùn)行具體程序說(shuō)明調(diào)試過(guò)程。源程序PWM.pjt保存在Matlab根目錄下的project文件下。

        (1) 加載DSP目標(biāo)板

        mypjt=ccsdsp %建立CCSLink連接對(duì)象mypjt

        CCSDSP Object:%Matlab界面返回信息

        Processor type:TMS320C24xx

        Processor name :CPU_1

        Running?:No

        Board number :0

        Processor number :0

        Default timeout :10.00 secs

        Ccsboardinfo %測(cè)試目標(biāo)板狀態(tài)

        Board Board Proc Processor Processor

        NumNameNumNameType

        ...........................................

        0tds5102xx 0 CPU_1 TMS320C24xx

        %Matlab環(huán)境下調(diào)試已建立好的DSP程序

        profile=fullfile(Matlabroot,′myproject′,…

        ′PWM.pjt′);%調(diào)用硬盤(pán)目錄下的工程文件

        projpath=fileparts(profile);%建立路徑

        open(mypjt,projpath);%打開(kāi)文件

        visible(mypjt,1);%主機(jī)顯示CCS調(diào)試界面

        cd(mypjt,projfile);%更改Matlab工作路徑

        build(mypjt,′all′,60);%編譯程序

        load(mypjt,′PWM.out′,30);%載入執(zhí)行文件

        animate(mypjt);%運(yùn)行程序

        (2) 利用CCSLink連接對(duì)象控制訪問(wèn)DSP

        open(mypjt,′PWM.c′,′text′);%打開(kāi)源程序

        open(mypjt,′PWM.cmd′,′text′);%打開(kāi)命令文件

        insert(mypjt,′PWM.c′,20);%在源程序第20行插入斷點(diǎn)

        halt(mypjt);%在斷點(diǎn)處暫停目標(biāo)DSP

        restart(mypjt);%復(fù)位程序計(jì)數(shù)器PC

        run(mypjt,′runtohalt′,20);%運(yùn)行程序,知道第20行才把控制權(quán)返回到Matlab

        PWMdat=read(mypjt,address(mypjt,′cesi1′),′int′);%讀cesi1

        IPWMdat=read(mypjt,address(mypjt,′cesi2′),′int′);%讀cesi2

        Write (mypjt,address(mypjt,′cesi1′),int([0]);%將數(shù)組[0]寫(xiě)入cesi1

        run(mypjt,′runtohalt′,20);%運(yùn)行程序,知道第20行才把控制權(quán)返回到Matlab

        (3) 利用嵌入式對(duì)象調(diào)試訪問(wèn)DSP內(nèi)存

        由于CCSLINK不支持240x系列DSP,下面程序在28xx系列目標(biāo)板上進(jìn)行調(diào)試,過(guò)程如下:

        restart(mypjt);%重新啟動(dòng)工程文件

        goto(mypjt,′main′);%跳到主程序入口處

        PMW1=createobj(mypjt,′cesi1′);%為cesi1創(chuàng)建潛入式對(duì)象

        read(PWM1);%讀出該嵌入式對(duì)象

        write(PWM1,0);%將該嵌入式對(duì)象寫(xiě)0

        sct(PWM1,′size′,[400]);%更改該嵌入式對(duì)象數(shù)組長(zhǎng)度

        clear mypjt;%斷開(kāi)連接

        從上述程序可知,在Matlab環(huán)境下可以完成對(duì)CCS工程文件的調(diào)入、編譯,生成可執(zhí)行文件并將其加載到DSP目標(biāo)板。并且可以通過(guò)相應(yīng)的連接對(duì)象和嵌入式對(duì)象操作函數(shù),實(shí)現(xiàn)在DSP硬件不停止執(zhí)行程序的情況下對(duì)DSP的C語(yǔ)言程序中數(shù)據(jù)結(jié)構(gòu)變量的讀寫(xiě)修改。

        3 ETTIC2000 環(huán)境下的直接代碼生成

        由第2節(jié)中可知,CCSLink為TI DSP實(shí)時(shí)應(yīng)用開(kāi)發(fā)的調(diào)試和測(cè)試階段提供了強(qiáng)大的支持,而ETTIC2000則為TI C2000 DSP實(shí)時(shí)應(yīng)用開(kāi)發(fā)的整個(gè)過(guò)程(概念設(shè)計(jì)、算法仿真、源代碼編寫(xiě)、目標(biāo)代碼生成、調(diào)試和測(cè)試)都提供了支持。利用ETTIC2000能夠從Simulink模型自動(dòng)生成TI C2000 DSP的可執(zhí)行代碼,并且為TI LF2407 EVM目標(biāo)板上的I/O設(shè)備提供驅(qū)動(dòng)代碼,使得MINULINK模型可以直接在LF2407 EVM板上進(jìn)行實(shí)時(shí)測(cè)試,從而在Simulink統(tǒng)一環(huán)境下就可以實(shí)現(xiàn)整個(gè)硬件在線仿真。

        3.1 ETTIC2000應(yīng)用開(kāi)發(fā)過(guò)程

        應(yīng)用ETTIC2000開(kāi)發(fā)實(shí)時(shí)DSP處理的過(guò)程如下:

        (1)概念構(gòu)思和DSP處理算法設(shè)計(jì);

        (2)在Simulink環(huán)境下,利用DSP BLOCKSET,F(xiàn)IXED-POINT BLOCKSET,C2000 DSPLIB和Simulink等庫(kù)中的模塊構(gòu)建算法模型,并在Simulink環(huán)境下進(jìn)行仿真;

        (3)如果Simulink仿真效果滿意,就可以在模型中加入需要的LF2407 EVM 目標(biāo)板上的I/O模塊;

        (4)設(shè)置REAL-TIME WORKSHOP 中的編譯鏈接(BUILD)選項(xiàng);

        (5)利用CCS中的調(diào)試工具、CCSLink 或RTDX來(lái)調(diào)試目標(biāo)DSP中的程序;

        REAL-TIME WORKSHOP 能夠從Simulink模型中自動(dòng)產(chǎn)生C代碼并且插入ADC和DAC模塊指定的I/O設(shè)備驅(qū)動(dòng)程序。再通過(guò)REAL-TIME WORKSHOP 面板上的BUILD按鈕,REAL-TIME WORKSHOP 會(huì)自動(dòng)產(chǎn)生實(shí)時(shí)可執(zhí)行代碼。

        3.2 建立Simulink模型

        由前述連接對(duì)象可知,系統(tǒng)已經(jīng)正確安裝了TIC2000系列DSP目標(biāo)板。在Matlab命令窗口輸入:C2000LIB,打開(kāi)TIC2000的Simulink模塊庫(kù),其模型庫(kù)組成如圖2所示。本系統(tǒng)采用2407目標(biāo)板,因此只用到C2000 Target Preferences 和C2400 DSP Chip Support等模塊。本文以脈寬調(diào)制中A/D采樣控制為例,其建立的Simulink模型如圖3所示。

        3.3 REAL-TIME WORKSHOP 選項(xiàng)設(shè)置

        建立好Simulink模型后,設(shè)置其屬性,生成CCS可執(zhí)行的工程文件。

        在Simulink模型窗口選擇Simulation下拉菜單中選擇Configuration Parameters,彈出如圖4所示對(duì)話框。在屬性對(duì)話框中單擊Real-Time Workshop選項(xiàng)卡,在Category欄中選中Target configuration 修改System target file和Template make file文件名。其他選擇默認(rèn)值,單擊Generate Code,就可以將Simulink模型自動(dòng)生成CCS IDE的工程文件,并自動(dòng)調(diào)入CCS IDE中,則該工程文件就可以在CCS IDE中編譯下載運(yùn)行。其生成的工程文件在CCS IDE環(huán)境下的載入情況如圖5所示。

        在直接代碼生成時(shí),Matlab命令窗口返回信息如下:

        ### Writing header file c2407adcpwmtest.h

        ### Writing source file c2407adcpwmtest.c.

        ### TLC code generation complete.

        ### Creating project marker file:rtw_proj.tmw

        ### Wrapping unrecognized make command

        ###

        ### Creating c2407adcpwmtest.mk from F:\\\\Matlab71\\\oolbox\\\\rtw\\\argets\\\ic2000\\\ic2000\\\i_c2000_grt.tmf

        ### Creating project in Code Composer Studio(tm)

        ### Building Code Composer Studio(tm) project...

        ### Build complete

        至此,代碼生成并在CCS IDE中編譯完畢。

        4 結(jié) 語(yǔ)

        本文基于Matlab環(huán)境對(duì)DSP的實(shí)時(shí)調(diào)試及直接代碼生成過(guò)程做了詳細(xì)的闡述,并結(jié)合實(shí)例給予演示。實(shí)驗(yàn)證明,應(yīng)用Matlab對(duì)DSP進(jìn)行實(shí)時(shí)調(diào)試和代碼生成,有效地改變了傳統(tǒng)的設(shè)計(jì)方法。Matlab的易于操作性有助于在設(shè)計(jì)早期發(fā)現(xiàn)錯(cuò)誤并進(jìn)行實(shí)時(shí)更改。而CCSLINK與ETTIC2000的結(jié)合,使得在集成、統(tǒng)一的Matlab環(huán)境下完成DSP開(kāi)發(fā)的整個(gè)過(guò)程。

        參考文獻(xiàn)

        [1]李真芳,蘇濤,黃小宇.DSP程序開(kāi)發(fā)[M].西安:西安電子科技大學(xué)出版社,2003.

        [2]王宏.Matlab 6.5及其在信號(hào)處理中的應(yīng)用[M].北京:清華大學(xué)出版社,2004.

        [3]許儒泉,高雪清.基于Matlab的DSP系統(tǒng)級(jí)的設(shè)計(jì)方法[J].現(xiàn)代電子技術(shù),2004,27(13):152-156.

        [4]沈鴻章,盧佩.CCSLINK 在實(shí)時(shí)DSP程序調(diào)試中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(6):29-31.

        [5]汪洋,郭麗麗,樊麗萍.一種基于Matlab的DSP開(kāi)發(fā)思路的研究[J].控制工程,2006,5(13):123-126.

        [6]劉和平,王維俊,江渝,等.TMS320LF240X DSP C語(yǔ)言開(kāi)發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.

        [7]TMS320LF240X Evaluation Module User′s Guide.Texas Instruments Inc.,August 2002.

        [8]Developer′s Kit for Texas Instruments DSP User′s Guide.MathWorks Inc.February 2001.

        作者簡(jiǎn)介 冷 斌 男,1981年出生,江西南昌人,在讀工程碩士,2004年7月畢業(yè)于南昌大學(xué)自動(dòng)化學(xué)院,現(xiàn)任教于江西旅游商貿(mào)職業(yè)技術(shù)學(xué)院。研究方向?yàn)殡娏﹄娮蛹夹g(shù)。

        李學(xué)勇 男,1982年出生,湖南長(zhǎng)沙人,在讀碩士研究生,2004年7月畢業(yè)于哈爾濱工程大學(xué)建筑工程學(xué)院,現(xiàn)就讀于南昌航空大學(xué)自動(dòng)化學(xué)院。研究方向?yàn)楝F(xiàn)代電力電子技術(shù)。

        丰满五十六十老熟女hd| 精品国产av一区二区三区四区| 国产亚av手机在线观看| 日本午夜免费福利视频| 色综合色综合久久综合频道| 精品女人一区二区三区| 尤物yw午夜国产精品视频| 国产精品亚洲一区二区三区在线 | 色999欧美日韩| 国产av熟女一区二区三区老牛| 免费黄片小视频在线播放| 少妇人妻大乳在线视频不卡| 国产精品无需播放器| 婷婷开心五月综合基地| 日本护士口爆吞精视频| 久久久久无码精品国产app| 国产真实露脸4p视频| 国内人妖一区二区在线播放| 中文字幕日韩人妻少妇毛片| 四虎影视永久地址www成人| 国产成人亚洲综合无码DVD| 青青草视频在线观看9| 久久久亚洲欧洲日产国码二区| 夜夜嗨av一区二区三区| 国产亚洲精品不卡在线| 国产成人亚洲精品91专区高清| 国产精品精品自在线拍| 国产成人无码aⅴ片在线观看| 精品国产又大又黄又粗av| 国产剧情一区二区三区在线| 国产无套内射久久久国产| 婷婷色综合成人成人网小说| 女同舌吻互慰一区二区| 亚洲理论电影在线观看| 亚洲av无码片一区二区三区| 中文字幕乱码亚洲无线| 极品一区二区在线视频观看| 在线亚洲+欧美+日本专区| 精品在免费线中文字幕久久| av网站不卡的av在线| 99久久婷婷国产综合精品青草免费|