www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]  視頻監(jiān)控子系統(tǒng)是現(xiàn)代智能機(jī)器人設(shè)計(jì)中必不可少的一個(gè)部分,它需要采用DSP并根據(jù)某種算法對(duì)攝入的圖像進(jìn)行處理和分析,它也需要采用ARM處理器對(duì)DSP進(jìn)行協(xié)同管理和控制工作,目前開發(fā)工程師碰到的一個(gè)最大設(shè)計(jì)挑戰(zhàn)

  


 

  圖1 達(dá)芬奇軟件結(jié)構(gòu)框圖

  通過第一部分的介紹,我們知道了TI數(shù)字視頻軟件開發(fā)包(DVSDK)中的Codec Engine軟件模塊可以幫助我們輕松地實(shí)現(xiàn)ARMDSP或協(xié)處理器的協(xié)同工作,以及Codec Engine軟件模塊的概要情況,下面我們將告訴你如何走完Codec Engine入門的第一步和第二步。歡迎轉(zhuǎn)載,本文來自電子發(fā)燒友網(wǎng)(http://www.elecfans.com)

  2. Codec Engine入門第一步

  有些初學(xué)者認(rèn)為Codec Engine文件包結(jié)構(gòu)復(fù)雜,很難找到自己想找的文檔或例子。其實(shí)在Codec Engine文件包的根目下有一個(gè)發(fā)布說明文檔,比如Codec Engine 1.20 根目錄下的release_notes_codec_engine_1_20.html。這個(gè)文檔就是你了解Codec Engine的開始,里面有關(guān)于該版本Codec Engine的介紹、相關(guān)文檔資料的鏈接、新的功能、支持哪些芯片、已知的bug、修正了哪些bug及例子等等的具體說明。具體如圖2藍(lán)色字體所示。瀏覽該文檔后,初學(xué)者至少可以知道哪里可以找到自己想要的文檔或例子。舉例來說,如果想找相關(guān)的文檔,點(diǎn)擊 Documentation就可以看到這個(gè)Codec Engine文件包里的文檔的鏈接。

  

 

  圖2 Codec Engine 1.20 Release Notes截圖

  3.Codec Engine入門第二步

  點(diǎn)擊Codec Engine的發(fā)布說明文檔 (如圖2)的Validation Info,我們可以知道Codec Engine 1.20需要和以下軟件模塊和工具配合使用:

  ?Framework Components 1.20.02

  ?xDAIS 5.21

  ?XDC Tools 2.93.01

  ?DSP/BIOS Link 1.40.05, configured for the DM6?46 EVM

  ?C6x Code Generation Tools version 6.0.8

  ?DSP/BIOS 5.31.05

  ?MontaVista Linux v4.0

  ?Red Hat Enterprise Linux 3 (SMP)

  因此,我們需要在該Codec Engine安裝的DVSDK文件包下面檢查上面提到的軟件模塊和工具是否安裝,版本是否正確。否則,可能會(huì)編譯不過 Codec Engine的例子。那么,什么是 Framework Components,什么是xDAIS,什么又是XDC Tools呢?你可以分別到它們的根目錄下瀏覽它們各自的發(fā)布說明文檔,做一個(gè)總體的了解。

  這里我們簡(jiǎn)單介紹一下,可以幫助大家盡快找到和自己相關(guān)的重點(diǎn)及資源。

  1)Framework Components是TI提供的一個(gè)軟件模塊,負(fù)責(zé)DSP側(cè)的memory 和DMA資源管理。因此,DSP算法工程師需要了解這個(gè)軟件模塊。http://tiexpressdsp.com/wiki/index.php?title=Framework_Components_FAQ

  2)xDAIS 是一個(gè)標(biāo)準(zhǔn),它定義了TI DSP算法接口的標(biāo)準(zhǔn)。這樣大大提高了DSP算法軟件的通用性。DSP算法工程師要寫出能被ARM通過Codec Engine調(diào)用的算法,必須保證自己的算法接口符合這個(gè)標(biāo)準(zhǔn)。因此,DSP算法工程師也必須了解這個(gè)軟件模塊。http://tiexpressdsp.com/wiki/index.php?title=Category:XDAIS

  3)XDC Tools和gmake類似,是一個(gè)工具。XDC根據(jù)用戶定義的一套build指令,通過調(diào)用用戶指定的ARM 工具鏈(Tool Chain)和DSP編譯器(C6x Code Generation Tools )build出ARM側(cè)和DSP側(cè)的可執(zhí)行文件??梢韵炔槐丶?xì)究這個(gè)工具,只需通過編Codec Engine的例子,知道如何設(shè)置build指令就可以了。

  4)DSP/BIOS Link是實(shí)現(xiàn)ARM和DSP之間通信的底層軟件,Codec Engine就是建立在這個(gè)底層軟件之上。在修改系統(tǒng)內(nèi)存分配(缺省是256MB的DDR2)時(shí),DSP/BIOS Link 1.38版本的用戶需要修改DSP/BIOS Link的配置文件,并重新build DSP/BIOS Link。而DSP/BIOS Link 1.40版本以后的用戶就無需此操作。http://tiexpressdsp.com/wiki/index.php?title=DSPLink_Overview

  http://wiki.davincidsp.com/index.php?title=Changing_the_DVEVM_memory_map

  5)C6x Code Generation Tools是Linux環(huán)境下C6000系列DSP的編譯器。我們用CCS開發(fā)DSP時(shí)都是用的Windows環(huán)境下的DSP編譯器。

  6)DSP/BIOS是TI 免費(fèi)提供的DSP實(shí)時(shí)操作系統(tǒng)。和上面C6x Code Generation Tools一樣,這里的DSP/BIOS也是Linux環(huán)境下的版本。DSP系統(tǒng)工程師需要了解這個(gè)操作系統(tǒng)。

  4. Codec Engine入門第三步

  開發(fā)ARM+DSP平臺(tái)需要三類工程師:ARM應(yīng)用程序工程師、DSP算法工程師和DSP系統(tǒng)工程師。而開發(fā)ARM+協(xié)處理器平臺(tái)只需要ARM應(yīng)用程序工程師。下面就讓我們針對(duì)這三類工程師做分別介紹。如果您使用的是TI或TI第三方的編解碼算法,就不需要關(guān)注DSP算法工程師的部分。如果使用ARM+協(xié)處理器平臺(tái),就只需關(guān)心ARM應(yīng)用工程師的部分。

  4.1 DSP算法工程師應(yīng)該如何著手?

  這里我們不討論如何開發(fā)DSP算法,只討論DSP算法工程師怎樣讓自己的算法可以被ARM通過Codec Engine調(diào)用。(參考http://www.ti.com/litv/pdf/sprued6c,這個(gè)文檔會(huì)講到codec package及相關(guān)的.xs和.xdc文件,Codec Engine1.20及以上版本的用戶可以先不細(xì)究這些內(nèi)容,后面會(huì)介紹工具幫您自動(dòng)生成這些文件。)

  1)熟悉xDAIS和xDM標(biāo)準(zhǔn)。

  xDM只是xDAIS的擴(kuò)展,因此,需要先了解xDAIS。在xDAIS 軟件包根目錄下的發(fā)布說明文檔里,可以很快找到關(guān)于xDAIS和xDM的文檔鏈接。http://focus.ti.com/lit/ug/spruec8b/spruec8b.pdf

  在xDAIS安裝路徑下的examples/ti/xdais/dm/examples/g711有一個(gè)g711_sun_internal.c,這個(gè)算法不符合xDAIS標(biāo)準(zhǔn)。在同一個(gè)路徑下的g711dec_sun_ialg.c (decoder)和g711enc_sun_ialg.c (encoder)是封裝成符合xDM標(biāo)準(zhǔn)之后的編解碼算法??梢酝ㄟ^這個(gè)例子學(xué)習(xí)和了解如何把自己算法封裝成符合xDM標(biāo)準(zhǔn)的算法。

  xDAIS 6.10及其以后的版本,包含了一個(gè)工具QualiTI,可以檢查您的DSP算法是否滿足xDAIS標(biāo)準(zhǔn)(但不會(huì)檢查是否滿足xDM)。具體請(qǐng)參考:http://tiexpressdsp.com/wiki/index.php?title=QualiTI_XDAIS_Compliance_Tool

  2)熟悉Framework Components。

  Framework Components主要包括兩個(gè)模塊DSKT2和DMAN3,它們分別負(fù)責(zé)DSP側(cè)的memory 和EDMA資源管理。DSP算法使用的memory必須是先向DSKT2提出申請(qǐng)并由DSKT2分配得到的。同樣DSP算法使用的EDMA通道也是向DMAN3申請(qǐng)并由DMAN3分配得到的。而關(guān)于QDMA的操作,是通過ACPY3這個(gè)模塊實(shí)現(xiàn)的。這樣的好處是很容易對(duì)DSP側(cè)不同的算法做整合,不同的算法之間不用擔(dān)心資源(Memory和EDMA)的沖突問題。

  在Framework Components 軟件包根目錄下的發(fā)布說明文檔里,可以很快找到相關(guān)文檔的鏈接。在Framework Components安裝路徑下packagestisdofcdman3examples有一個(gè)Fast Copy的例子,可以幫您理解如何基于Framework Components的ACPY3模塊實(shí)現(xiàn)QDMA的操作。

  另外,有些用戶DSP側(cè)的算法比較簡(jiǎn)單,在確保不和ARM側(cè)EDMA資源沖突的前提下在算法里直接操作EDMA不使用DMAN3也是可以的。這樣做的弊端是和其它算法做整合時(shí)會(huì)遇到資源使用沖突的問題。[!--empirenews.page--]

  4.2 DSP系統(tǒng)工程師應(yīng)該如何著手?

  通常DSP算法工程師都會(huì)把自己的符合xDM標(biāo)準(zhǔn)算法編成一個(gè).lib文件(或 .a6?P),供DSP系統(tǒng)工程師調(diào)用。DSP系統(tǒng)工程師最終build出一個(gè)DSP Server(也就是DSP的可執(zhí)行程序.x6?P,和CCS下編譯生成的.out類似)。(參考http://focus.ti.com/lit/ug/sprued5b/sprued5b.pdf,這個(gè)文檔會(huì)講到.xdc和.bld等文件,Codec Engine1.20及以上版本的用戶可以先不細(xì)究,后面介紹工具幫您自動(dòng)生成這些文件。)

  1)如果現(xiàn)在有一個(gè).lib文件(或 .a6?P)(算法必須符合xDM標(biāo)準(zhǔn)),如何生成自己的DSP Server呢?下面URL有詳細(xì)的關(guān)于RTSC Codec and Server Package Wizard工具介紹,教您如何把一個(gè).lib文件封裝成RTSC Codec 包和RTSC DSP Server包,并最終build出DSP的可執(zhí)行程序.x6?P。http://wiki.davincidsp.com/index.php?title=RTSC_Codec_And_Server_Package_Wizards http://wiki.davincidsp.com/index.php?title=I_just_want_my_video_codec_to_work_with_the_DVSDK

  2)如果您使用的是Codec Engine 1.20以前的版本,請(qǐng)參考Codec Engine安裝路徑下examples/servers/video_copy這個(gè)例子。這時(shí)就需要搞清楚sprued6c.pdf和sprued5b.pdf中提到的.xdc和.xs等文件的功能,也可以在video_copy中的相關(guān)文件的基礎(chǔ)上修改手動(dòng)創(chuàng)建出自己的RTSC Codec包和RTSC DSP server包。

  3)創(chuàng)建好RTSC Codec 和RTSC DSP Server包之后,就是如何build出.x6?P的問題了。點(diǎn)擊圖2所示的Examples,就可以找到build Codec Engine例子的說明文檔的鏈接。按照這個(gè)文檔做一遍后,就可以對(duì)如何build Codec Server有一個(gè)清楚的了解。其中關(guān)鍵是修改user.bld和xdcpaths.mak文件,設(shè)置Codec Engine依賴的其它軟件模塊和工具的正確路徑。

  4)如果自己的硬件DDR2大小和例子中的256Mbytes不一致,需要修改DSP的.tcf文件和其他配置。還有些工程師不清楚如何分配memory及如何決定具體段,如:DDRALGHEAP和DDR的大小,以及如何配置./loadmodules里的參數(shù)都請(qǐng)參考: http://wiki.davincidsp.com/index.php?title=Changing_the_DVEVM_memory_map。

  4.3 ARM應(yīng)用程序工程師應(yīng)該如何著手?

  ARM應(yīng)用工程師需要調(diào)用Codec Engine的VISA API,最終編出ARM側(cè)的可執(zhí)行程序,因此,必須根據(jù)自己的應(yīng)用學(xué)習(xí)相關(guān)的VISA API、如何創(chuàng)建應(yīng)用側(cè)Codec Engine的package及配置文件。(參考http://focus.ti.com/lit/ug/sprue67d/sprue67d.pdf,這個(gè)文檔也涉及到如何調(diào)試Codec Engine的內(nèi)容)。

  1)了解ARM應(yīng)用程序調(diào)用Codec Engine的流程、VISA API和其他Codec Engine API??梢詤⒖糃odec Engine安裝路徑下examples/apps/video_copy的例子(較簡(jiǎn)單)或者DVSDK安裝路徑下demos里的encode/decode/encodedecode例子(較復(fù)雜)。http://wiki.davincidsp.com/index.php?title=Configuring_Codec_Engine_in_Arm_apps_with_createFromServer

  2)了解ceapp.cfg文件。sprue67d.pdf有相關(guān)介紹,可以先讀懂examples/apps/video_copy/ceapp.cfg。

  3)用4.2 3)中提到的方法學(xué)習(xí)如何build ARM側(cè)的可執(zhí)行程序。

  4)如何在多線程中調(diào)用codec engine,參考:http://wiki.davincidsp.com/index.php?title=Multiple_Threads_using_Codec_Engine_Handle

  5)還可以參考以下三個(gè)文檔了解更多TI demo的ARM應(yīng)用程序的結(jié)構(gòu)、線程調(diào)度等具體的問題。

  EncodeDecode Demo for the DaVinci DVEVM/DVSDK 1.2 (Rev. A) (spraah0a.htm, 8 KB) 27 Jun 2007 Abstract

  Encode Demo for the DaVinci DVEVM/DVSDK 1.2 (Rev. A) (spraa96a.htm, 8 KB) 27 Jun 2007 Abstract

  Decode Demo for the DaVinci DVEVM/DVSDK 1.2 (Rev. A) (spraag9a.htm, 8 KB) 27 Jun 2007 Abstract

  5.使用中常碰到的問題

  1)如果遇到問題可以先訪問http://wiki.davincidsp.com/index.php?title=Codec_Engine_FAQ。

  2)有些工程師沒有DSP開發(fā)經(jīng)驗(yàn),或者暫時(shí)沒有仿真器通過JTAG調(diào)試DSP??梢詤⒖枷旅婢W(wǎng)頁的內(nèi)容,先做一個(gè)“Hello World”的例程對(duì)ARM和DSP如何協(xié)同工作有個(gè)感性認(rèn)識(shí)。http://wiki.davincidsp.com/index.php?title=How_to_build_an_ARM/DSP_Hello_World_program_on_the_DaVinci_EVM

  3)很多工程師都是參考video_copy的例子,在它的基礎(chǔ)上把自己的算法加進(jìn)去。因?yàn)橛性创a,這樣比較容易。但肯定要根據(jù)自己算法的需要修改ARM和DSP之間傳遞的buffer和參數(shù),重要的是先保證ARM側(cè)的應(yīng)用程序可以把buffer和參數(shù)正確傳遞到DSP,DSP可以把處理之后的buffer正確的傳到ARM側(cè)的應(yīng)用程序。把這個(gè)通路打通之后,就比較容易定位問題是出在ARM應(yīng)用程序還是DSP側(cè)的算法。另外,參考video_copy例子時(shí)注意代碼的注釋,以便清楚哪一句代碼可以刪掉哪一句必須要修改或保留。如果要擴(kuò)展xDM的數(shù)據(jù)結(jié)構(gòu)請(qǐng)參考:http://wiki.davincidsp.com/index.php?title=Extending_data_structures_in_xDM。

  4)Codec Engine DSP側(cè)會(huì)涉及到Cache一致性的問題。請(qǐng)參考:http://wiki.davincidsp.com/index.php?title=Cache_Management

  5)關(guān)于Codec Engine系統(tǒng)調(diào)試,有以下幾種方法:

  A.打開Codec Engine trace,通過打印信息看問題出在什么地方。比如engine_open失敗,DSP側(cè)不能創(chuàng)建codec 等等。

  a)Codec Engine 2.0及以上版本,請(qǐng)參考:http://wiki.davincidsp.com/index.php?title=Easy_CE_Debugging_Feature_in_CE_2.0

  b)Codec Engine 1.x版本,請(qǐng)參考:http://wiki.davincidsp.com/index.php?title=TraceUtil

  B.ARM應(yīng)用程序跑起來后,用仿真器連上CCS調(diào)試DSP側(cè)程序,參考:http://wiki.davincidsp.com/index.php?title=Debugging_the_DSP_side_of_a_CE_application_on_DaVinci_using_CCS

  C.用Soc Analyzer可以做系統(tǒng)調(diào)試之外,還可以統(tǒng)計(jì)具體函數(shù)運(yùn)行(ARM和DSP側(cè))時(shí)間(benchmark)。請(qǐng)參考:http://tiexpressdsp.com/wiki/index.php?title=SoC_Analyzer

  6)因?yàn)镃odec Engine是介于ARM 應(yīng)用程序和編解碼算法中間的軟件模塊,很多工程師非常想知道它的開銷(overhead),請(qǐng)參考:http://wiki.davincidsp.com/index.php?title=Codec_Engine_Overhead

  7)如何在Linux環(huán)境下編DSP的匯編或線性匯編程序?

  在Codec Engine安裝路徑下/packages/config.bld文件里

  var C6?P = xdc.useModule(‘ti.targets.C6?P’);

  之后添加:

  C6?P.extensions[“.sa”] = {

  suf: “.sa”, typ: “asm:-fl”

  }

  或

  C6?P.extensions[“.asm”] = {

  suf: “.asm”, typ: “asm:-fa”

  }

  8)DSP側(cè)如何統(tǒng)計(jì)具體函數(shù)運(yùn)行時(shí)間?

  TI DSPC6?x+內(nèi)核有一個(gè)6?位的硬件定時(shí)器(Time Stamp Counter),它的頻率和CPU頻率一致。最簡(jiǎn)單的辦法是使用TSC的低32位TSCL。注意在DM6?4x中,TSCH用于ARM。

  #include

  void main (){

  …

  TSCL=0;

  …

  t1=TSCL;

  my_code_to_benchmark();

  t2=TSCL;

  printf(“# cycles == %dn”, (t2-t1));

  }

  6.結(jié)語

  以上針對(duì)如何上手TI的Codec Engine做了簡(jiǎn)單的歸納,還有很多具體細(xì)節(jié)的問題沒有涉及到。還請(qǐng)各位工程師從自己要用的軟件模塊發(fā)布說明文檔開始找到相關(guān)的文檔并研究。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

北京2022年10月19日 /美通社/ -- 隨著云計(jì)算、大數(shù)據(jù)的普及發(fā)展,過去的"云"是服務(wù)于大企業(yè)的計(jì)算模型,而十多年過去了,越來越多的應(yīng)用及業(yè)務(wù)走上"云端",對(duì)計(jì)算核心數(shù)需求...

關(guān)鍵字: ARM 大數(shù)據(jù) 云游戲 CPU

無線連接已成為許多產(chǎn)品的必備功能,但往往會(huì)增加系統(tǒng)設(shè)計(jì)的成本和復(fù)雜性,因?yàn)樗ǔ1仨氉鳛楦髴?yīng)用的附加功能。Microchip Technology Inc.(美國微芯科技公司)今日推出首款基于Arm Cortex?-M...

關(guān)鍵字: Microchip ARM PIC

互聯(lián)網(wǎng)內(nèi)容的主要介質(zhì)在過去的幾十年中完成了從文字到圖片再到視頻的轉(zhuǎn)變。在不斷變化中,一以貫之的是人們對(duì)體驗(yàn)更好,更真實(shí)、更豐富網(wǎng)絡(luò)生活的追求。如今,視頻和游戲內(nèi)容都在向著更高刷新率與分辨率的方向發(fā)展,終端設(shè)備也在積極普及...

關(guān)鍵字: 元宇宙 Wi-Fi 7 通信

物聯(lián)網(wǎng)正在擴(kuò)大規(guī)模并加速發(fā)展,進(jìn)而驅(qū)動(dòng)著全新的經(jīng)濟(jì)。而Arm生態(tài)系統(tǒng)正是這一巨大機(jī)遇背后的推動(dòng)力。

關(guān)鍵字: ARM 物聯(lián)網(wǎng)

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,它與一般的半導(dǎo)體公司最大的不同就是不制造芯片且不向終端用戶出售芯片,而是通過轉(zhuǎn)讓設(shè)計(jì)方案,由合作伙伴生產(chǎn)出各具特色的芯片。

關(guān)鍵字: ARM

此前,印度政府曾在推特上公布“國家寬帶使命”計(jì)劃,并表示將于今年10月1日在印度正式推出5G服務(wù),引發(fā)了不少網(wǎng)友的關(guān)注。然而,近日CNMO了解到,此條推文現(xiàn)已被刪除。業(yè)內(nèi)人士表示,印度可能尚未準(zhǔn)備好從10月1日開始推出5...

關(guān)鍵字: 印度 5G 通信

2018年10月26日,深圳星河麗思卡爾頓酒店,ARM中國CEO吳雄昂在ARM年度技術(shù)論壇上對(duì)記者如是說,彼時(shí)的吳堅(jiān)定,溫雅,意氣風(fēng)發(fā)。時(shí)隔兩年,ARM中國CEO吳雄昂再次回到媒體視線,這一次,ARM中國與來自投資方和劍...

關(guān)鍵字: ARM 芯片 集成電路

喜歡折騰主機(jī)的小伙伴一定都知道X86和ARM架構(gòu)的區(qū)別,前者在PC領(lǐng)域已經(jīng)統(tǒng)治了幾十年;后者則主要應(yīng)用于移動(dòng)領(lǐng)域,尤其是近幾年,ARM的產(chǎn)品在終端應(yīng)用特別是手持終端應(yīng)用飛速發(fā)展。

關(guān)鍵字: 國產(chǎn) ARM 主機(jī)

科技公司們認(rèn)為,收購將使英偉達(dá)控制一個(gè)重要的供應(yīng)商,該供應(yīng)商向蘋果、英特爾、三星電子、亞馬遜和華為等公司授權(quán)基本的芯片技術(shù),同時(shí)也向不計(jì)其數(shù)的中小技術(shù)企業(yè)提供授權(quán)??偛课挥谟腁RM公司將芯片設(shè)計(jì)和相關(guān)軟件代碼授權(quán)給所...

關(guān)鍵字: 英偉達(dá) ARM 半導(dǎo)體公司

在去年九月,英偉達(dá)宣布以400億美金收購ARM時(shí),就注定這場(chǎng)收購不會(huì)太順利。因?yàn)橐坏〢RM成功被英偉達(dá)收購,這將使ARM改變?cè)谌虬雽?dǎo)體市場(chǎng)中的中立立場(chǎng),因?yàn)锳RM的很多客戶,都是英偉達(dá)的直接或者間接的對(duì)手。除此之外,還...

關(guān)鍵字: 英偉達(dá) ARM 半導(dǎo)體

數(shù)字電源

15504 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉