探測實(shí)驗(yàn) 南航版_第1頁
探測實(shí)驗(yàn) 南航版_第2頁
探測實(shí)驗(yàn) 南航版_第3頁
探測實(shí)驗(yàn) 南航版_第4頁
探測實(shí)驗(yàn) 南航版_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、探測與識別實(shí)驗(yàn) DSP圖像處理實(shí)驗(yàn)報(bào)告探測與識別實(shí)驗(yàn)DSP圖像處理實(shí)驗(yàn)報(bào)告姓 名:蔡慧敏學(xué) 號:031150204指導(dǎo)老師:薛雅麗第三章 基礎(chǔ)實(shí)驗(yàn)實(shí)驗(yàn)一 Code Composer Studio的使用【實(shí)驗(yàn)?zāi)康摹?、 熟悉Code Composer Studio開發(fā)環(huán)境2、 熟悉DSP軟件開發(fā)流程3、 熟悉幾種主要的調(diào)試方法4、 熟悉在調(diào)試環(huán)境下觀察指令執(zhí)行結(jié)果的方法【實(shí)驗(yàn)內(nèi)容與步驟】本實(shí)驗(yàn)相關(guān)程序參見安裝光盤的imagelab_vdplab_ccs。在實(shí)驗(yàn)之前先確定你的微機(jī)中安裝了完整版本的CCS6000。 1在CCS中創(chuàng)建和測試一個(gè)工程項(xiàng)目在這個(gè)實(shí)驗(yàn)中,你將創(chuàng)建并測試一個(gè)簡單的程序hell

2、o,運(yùn)行該程序可以在CCS的輸出窗口顯示“hello world!”1.1 創(chuàng)建一個(gè)新的工程1) 在c:imagelab_vdp下用你的學(xué)號新建一個(gè)子目錄,并在其中再建立一個(gè)“hello”的子目錄。2) 把c:imagelab_vdplab_ccshello目錄下的文件(不包括debug目錄下的文件),都copy到這個(gè)新建的“hello”文件夾中。3) 從菜單或者快捷方式中打開CCS。4) 選擇ProjectNew 菜單5) 在彈出的窗口中,在最上端第一行填“myhello”作為文件名,下一行選擇你新建的文件夾“hello”,然后點(diǎn)擊“完成”。這樣CCS就新建了一個(gè)名為“myhello.pjt

3、”的工程文件。這個(gè)文件能保存你的工程的設(shè)置并且包括了你的工程用到的各種文件。1.2 向工程中添加文件1) 選擇ProjectAdd Files to Project,將hello.c添加至工程。如果在選擇窗口中沒有看到hello.c程序,請?jiān)谖募愋椭羞x擇C Source Files (*.c, *.ccc)。2) 選擇ProjectAdd Files to Project,選擇匯編源文件(*.asm)類型的文件,打開“vector.asm”。這個(gè)文件包含了一些匯編指令,這些指令是用來設(shè)置RESET中斷進(jìn)入程序中的C的入口地址c_int00。3) 選擇ProjectAdd Files to P

4、roject,添加“hello.cmd”文件。4) 選擇ProjectAdd Files to Project,進(jìn)入c:tic6000c6000cgtoolslib,文件類型選擇目標(biāo)文件和庫文件(*.o*,*.lib),打開“rts6400.lib”。這個(gè)庫對運(yùn)行中的DSP板提供支持。5) 在Project View中展開文件夾“myhello.pjt”。6) 你可以看見在你的“myhello.pjt”中,include下沒有文件,你不必自己向你的工程中添加Include文件,因?yàn)镃CS在編譯過程中尋找附件文件的時(shí)候可以自動(dòng)地找到它們,Include中的h文件的路徑在ProjectBuild

5、OptionsCompilerPreprocessor中指定。在編譯完你的工程以后,你就可以在你的Project View中找到Include文件。如果你要從你的工程中刪除一個(gè)文件,在Project View中右擊文件,在彈出的菜單中選擇“Remove from Project”。在編譯一個(gè)程序時(shí),CCS按照下列順序在工程文件中查找文件:·包含源文件的文件夾·在Include搜索路徑中列出的文件夾·在C64X_C_DIR(編譯器)和C64X_A_DIR(匯編器)環(huán)境變量的定義中列出的文件夾。1.3 查看源代碼雙擊hello.c,觀察源代碼。1.4 編譯和運(yùn)行程序按

6、以下步驟編譯運(yùn)行程序:1) 選擇ProjectRebuild All,CCS將再一次編譯、匯編、連接工程中的文件。這個(gè)工程的消息將在窗口底部的一個(gè)窗口顯示。2) 選擇FileLoad Program,在hellomyhellodebug目錄下打開剛剛生成的myhello.out文件。CCS把程序載入到DSP板上,然后系統(tǒng)會自動(dòng)打開一個(gè)反匯編(Disassembly)窗口顯示組成程序的反匯編過的指令。3) 選擇DebugRun4) 運(yùn)行完這個(gè)程序后,你可以在Stdout窗口中看到一條“hello world!”的信息。l 特殊技巧:在反匯編窗口中點(diǎn)擊一個(gè)匯編指令。(在指令上點(diǎn)擊,而不是在指令對應(yīng)

7、的地址)按下F1,CCS可以提供關(guān)于這條指令的幫助。這是一個(gè)得到一條你不熟悉的匯編指令的幫助信息的好辦法。1.5 實(shí)驗(yàn)結(jié)果CCS的輸出窗口顯示“hello world!”,程序運(yùn)行成功。實(shí)驗(yàn)二 指示燈閃亮【實(shí)驗(yàn)?zāi)康摹?. 掌握CCS編程的基本方法2. 熟悉DSP軟件開發(fā)流程3. 了解程序指令執(zhí)行結(jié)果和硬件之間的關(guān)系【實(shí)驗(yàn)內(nèi)容與步驟】此實(shí)驗(yàn)不需要攝像頭、顯示器等視頻輸入輸出設(shè)備。實(shí)驗(yàn)內(nèi)容是讓音視頻開發(fā)平臺上的LED燈亮或滅,大家可以自己修改程序讓LED閃爍。 實(shí)驗(yàn)項(xiàng)目為C:imagelab_vdpimage_vdp_ledimage_vdp_led.pjt,可執(zhí)行文件在C:imagelab_vd

8、pimage_vdp_leddebug目錄中。用戶可參考第二章的2.4節(jié)介紹的實(shí)驗(yàn)步驟完成實(shí)驗(yàn)。打開主文件led.c可以看到實(shí)驗(yàn)的源程序如下: void main() EVMDM642_init(); EVMDM642_LED_init(); while(1) EVMDM642_LED_on(3); 修改EVMDM642_LED_on()函數(shù)的中的參數(shù)值可看到不同的指示燈被點(diǎn)亮。參數(shù)范圍為0-4。實(shí)驗(yàn)四 視頻采集與回放【實(shí)驗(yàn)?zāi)康摹坷斫庖曨l采集與回放的原理【實(shí)驗(yàn)內(nèi)容與步驟】 實(shí)驗(yàn)項(xiàng)目為C:imagelab_vdplab_flash VP_loopback_P pal.pjt,OUT文件為C:im

9、agelab_vdplab_flash VP_loopback_P debugvideo_pal.out。用戶可以參考第二章的2.4節(jié)中介紹的步驟進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)源程序?yàn)関ideo_ntsc_pal.c,其中的處理函數(shù)為tskVideoLoopback(),下面具體闡述了程序各部分的功能:void tskVideoLoopback() /設(shè)置顯示的行數(shù) numLinesDis = EVMDM642_vDisParamsChan.imgVSizeFld1; /設(shè)置采集的行數(shù)numLinesCap = EVMDM642_vCapParamsChan.fldYStop1 EVMDM642_vCapPa

10、ramsChan.fldYStrt1+1; /取二者中較小的為程序處理的行數(shù)numLines = (numLinesDis > numLinesCap) ? numLinesCap : numLinesDis;#ifdef _LOOPBACK/設(shè)置每行顯示的像素 numPixels = EVMDM642_vCapParamsChan.fldXStop1 - EVMDM642_vCapParamsChan.fldXStrt1+1; /采集圖像一行的總像素 capLinePitch = EVMDM642_vCapParamsChan.fldXStop1 - EVMDM642_vCapPara

11、msChan.fldXStrt1+1; /顯示圖像一行的總像素 disLinePitch = EVMDM642_vDisParamsChan.imgHSizeFld1;#endif numLines *= 2; /* both fields */ /分配采集和顯示圖像的存放緩沖區(qū) EVMDM642_vCapParamsChan.segId = EXTERNALHEAP; EVMDM642_vDisParamsChan.segId = EXTERNALHEAP; EVMDM642_vDisParamsSAA7104.hI2C = EVMDM642_I2C_hI2C; EVMDM642_vCapP

12、aramsTVP5150A.hI2C = EVMDM642_I2C_hI2C;/建立并初始化采集設(shè)備對象#ifdef _LOOPBACK#ifdef _VP2 capChan = FVID_create("/VP2CAPTURE/A/1", IOM_INPUT, &status, (Ptr)&EVMDM642_vCapParamsChan, NULL);#else capChan = FVID_create("/VP0CAPTURE/A/0", IOM_INPUT, &status, (Ptr)&EVMDM642_vCap

13、ParamsChan, NULL);#endif #endif /建立并初始化顯示設(shè)備對象 disChan = FVID_create("/VP1DISPLAY", IOM_OUTPUT, &status, (Ptr)&EVMDM642_vDisParamsChan, NULL); /為保證采集和顯示設(shè)備正常工作,為其設(shè)置驅(qū)動(dòng) FVID_control(disChan, VPORT_CMD_EDC_BASE + EDC_CONFIG, (Ptr)&EVMDM642_vDisParamsSAA7104);#ifdef _LOOPBACK FVID_co

14、ntrol(capChan, VPORT_CMD_EDC_BASE + EDC_CONFIG, (Ptr)&EVMDM642_vCapParamsTVP5150A);#endif /開始采集和顯示操作 FVID_control(disChan, VPORT_CMD_START, NULL);#ifdef _LOOPBACK FVID_control(capChan, VPORT_CMD_START, NULL);#endif /分配采集和顯示一幀圖像存放的緩沖區(qū) FVID_alloc(disChan, &disFrameBuf);#ifdef _LOOPBACK FVID_al

15、loc(capChan, &capFrameBuf);#endif frames +;while(1)#ifdef _LOOPBACK Int i; /將采集緩沖區(qū)的內(nèi)容復(fù)制到顯示緩沖區(qū)中 for(i = 0; i < numLines; i +) DAT_copy(capFrameBuf->frame.iFrm.y1 + i * capLinePitch, disFrameBuf->frame.iFrm.y1 + i * disLinePitch, numPixels); DAT_copy(capFrameBuf->frame.iFrm.cb1 + i * (

16、capLinePitch >> 1), disFrameBuf->frame.iFrm.cb1 + i * (disLinePitch >> 1), numPixels>>1); DAT_copy(capFrameBuf->frame.iFrm.cr1 + i * (capLinePitch >> 1), disFrameBuf->frame.iFrm.cr1 + i * (disLinePitch >> 1), numPixels>>1); FVID_exchange(capChan, &cap

17、FrameBuf);#else fillFrmBuf(&disFrameBuf->frame.iFrm, EVMDM642_vDisParamsChan.imgHSizeFld1, EVMDM642_vDisParamsChan.imgVSizeFld1+EVMDM642_vDisParamsChan.imgVSizeFld2, frames % 360);#endif /將顯示緩沖區(qū)中的一幀圖像送給顯示設(shè)備 FVID_exchange(disChan, &disFrameBuf); /處理下一幀圖像 frames +; 加載可執(zhí)行文件即可看到顯示設(shè)備上,實(shí)時(shí)地輸出采集的圖像,如圖所示:實(shí)驗(yàn)感想:首先不得不說,在這個(gè)實(shí)驗(yàn)上,發(fā)現(xiàn)自己三年懂的東西好少。第一次,是真的向蹭蹭別人的勞動(dòng)成果的,結(jié)果興致匆匆的去,卻帶著些許失望回來了。因?yàn)樽约阂呀?jīng)做完的人的指導(dǎo)下卻仍沒有完成這個(gè)實(shí)驗(yàn),還數(shù)次都卡在同一個(gè)問題上“地址映射不對”,折騰了三個(gè)多小時(shí),最終還是不得不放棄。后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論