<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DSP的圖象采集與處理系統的設計

基于DSP的圖象采集與處理系統的設計

作者:欒璟明,雷志勇 時(shí)間:2008-07-15 來(lái)源:電子元器件應用 收藏

  4 系統軟件設計

本文引用地址:http://dyxdggzs.com/article/85729.htm

  4.1 的軟件開(kāi)發(fā)

  TMS320C6000軟件開(kāi)發(fā)的一切過(guò)程都可在CCS集成環(huán)境下進(jìn)行,包括項目的建立、源代碼的編輯以及程序的編譯和調試。圖4所示是TMS320C6000的軟件開(kāi)發(fā)流程圖。其中黑體部分是開(kāi)發(fā)C代碼的常規流程,其它功能可用于輔助和加速軟件開(kāi)發(fā)過(guò)程。

 

  該CCS能對用戶(hù)開(kāi)發(fā)的源代碼進(jìn)行優(yōu)化。目的是縮短代碼長(cháng)度并提高代碼執行效率。其中,C優(yōu)化器對C源代碼進(jìn)行優(yōu)化,所進(jìn)行的優(yōu)化包括針對C代碼的一般優(yōu)化和針對C6000的優(yōu)化,如重新安排語(yǔ)句和表達式、把變量分配給寄存器、打開(kāi)循環(huán)和模塊級優(yōu)化(把若干個(gè)文件組成1個(gè)模塊進(jìn)行優(yōu)化)等。C優(yōu)化器完成的最重要的優(yōu)化處理是軟件流水(software pipeline)。軟件流水是專(zhuān)門(mén)針對循環(huán)代碼的一種優(yōu)化技術(shù),利用軟件流水可以生成非常緊湊的循環(huán)代碼,這也是C6000的C編譯器能夠達到較高編譯效率的主要原因。

  匯編優(yōu)化器是C6000代碼產(chǎn)生工具內極具特色的一部分。它在業(yè)界首創(chuàng )了對線(xiàn)性匯編代碼自動(dòng)進(jìn)行優(yōu)化的技術(shù)。線(xiàn)性匯編語(yǔ)言是為簡(jiǎn)化C6000匯編語(yǔ)言程序的開(kāi)發(fā)而設計的,它不是獨立的編程語(yǔ)言。它可用用戶(hù)編寫(xiě)的線(xiàn)性匯編代碼作為輸入,同時(shí)產(chǎn)生一個(gè)標準匯編代碼作為輸出。與C6000的標準匯編語(yǔ)言相比,采用線(xiàn)性匯編不需要考慮并行指令安排、指令延遲和寄存器,而由匯編優(yōu)化器自動(dòng)完成,其所產(chǎn)生的代碼效率可以達到人工編寫(xiě)代碼效率的95%-100%,同時(shí)還可以降低編程工作量,縮短開(kāi)發(fā)周期。

  C6000程序的調試和仿真有兩種模式:軟件仿真和硬件仿真。軟件仿真時(shí),其程序的執行完全靠主機上的仿真軟件模擬,程序單步或者運行的結果都是仿真軟件“計算”出來(lái)的。而硬件仿真需要目標板。仿真程序利用開(kāi)發(fā)系統將代碼下載到,程序是在芯片上直接運行的。仿真軟件只是把運行結果讀出來(lái)顯示。軟件仿真無(wú)需目標板就可以開(kāi)始軟件編程,但仿真速度較慢,而且無(wú)法仿真某些外設的功能。硬件仿真的優(yōu)點(diǎn)是仿真速度快,仿真結果與實(shí)際結果一致。

  4.2 系統的上電引導

  C6711的引導裝載方式有三種:一是無(wú)引導,二是ROM/FLASH引導,三是主機引導。本設計采用FLASH引導。根據DSK開(kāi)發(fā)板上EMIF與FIASH硬件電路連接設計的引導程序如圖5所示。

 

  (1)FLASH存儲器的擦除

  擦除FLASH存儲器的關(guān)鍵源代碼如下:

 

  至此FLASH內部地址已經(jīng)映射到C6711的CE1空間,其開(kāi)始地址為  0X90000000H,因此其FLASH_ADR1,FLSH_ADR2的定義如下:

  #define FLASH_ADR1 0X90000555

  #define FLASH_ADR2 0X900002AA

  (2)匯編源代碼文件

  本引導代碼的主要功能是將用戶(hù)程序段從FLASH復制到DSP內部RAM中。然后再跳轉到程序的入口處開(kāi)始執行主程序。這里采用的是EDMA快速實(shí)現DSP存儲空間數據搬移的方式?;贓DMA傳輸參數的設置方法如表1所列。其核心引導程序如下:

 

 

  啟動(dòng)EDMA復制主程序段:CPU可以通過(guò)寫(xiě)事件置位寄存器(ESR)啟動(dòng)一個(gè)EDMA通道,ESR中某一位寫(xiě)1時(shí),將強行觸發(fā)對應的事件。程序如下:

 

  (3)鏈接命令文件

  系統中的鏈接命令文件(boot.cmd)如下:

 

  VEC,PMEM代表內部RAM的兩個(gè)存儲空間,而CEVEC,CEPMEM代表FLASH內的兩塊存儲空間,對目標文件中各段的加載地址和運行地址可在SECTIONS段實(shí)現:

 

  引導裝載是設計DSP系統所必需的過(guò)程。本設計采用EDMA方式來(lái)實(shí)現程序的快速搬移,故可在自制的PCB板上正確地實(shí)現脫機運行。

  (4)對DSP寄存器的設置

  只有對相應的寄存器實(shí)現EMIF初始化,DSP才能訪(fǎng)問(wèn)外部存儲器的數據,其源代碼如下:

 

  5 結束語(yǔ)

  本文介紹了為了在線(xiàn)線(xiàn)圈直徑的測量而開(kāi)發(fā)線(xiàn)陣CCD圖像采集和處理設備的具體方法,該系統利用TI公司的高性能浮點(diǎn)DSP-TMS320C6711實(shí)現了對dalsa公司的Piranha2 P2—2x Camera輸出數據的采集與處理。給出了一種通用的實(shí)時(shí)圖像處理系統,并詳細討論了系統的具體結構。在該系統中運行一些基本的圖像處理(銳化,平滑,邊緣檢測)和壓縮算法(JPEG,H.263),都能達到實(shí)時(shí)處理的目的。但在實(shí)際應用中,由于要求進(jìn)行連續采集與處理,最好能采用多個(gè)DSP并行工作方式。若物體的運動(dòng)速度更快或圖像處理更復雜時(shí),還應采用性能更強的DSP(如TI的64X系列DSP或采用多個(gè)DSP并行處理)。另外,在DSP與通訊設計中引人可使系統的設計更加靈活,同時(shí)也可為系統以后的擴展提供方便。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>