DVSDK介紹

下面對DVSDK的軟件架構,各個軟件模塊的功能等做簡要介紹。

DVSDK是多個軟件模塊的集成,包括純DSP端的軟件模塊,ARM的軟件模塊和雙核交互的軟件模塊。
DVSDK的軟件包都是基於實時軟件模塊(Real-Time-Software-Component:RTSC)的,
還需要安裝RTSC的工具XDC,XDC是TI開源的一個工具,可以支持跨平臺的開發,能夠最大程度的代碼重用;

如果需要進行純ARM的開發,還需要ARM的編譯工具以及Linux內核或者Wince的BSP;
如果需要進行DSP的算法開發或者DSP端開執行代碼生成,還需要安裝DSP的編譯器cgtools和DSP/BIOS;

爲了便於配置生成DSP端的可執行代碼,通過嚮導生成Codec的RTSC包和可執行代碼,還可以選裝ceutils和cg_xml。



DVSDK的核心是Codec Engine,所有的其他軟件模塊基本都是圍繞Codec Engine的。
Codec Engine是連接ARM和DSP的橋樑,是介於應用層(ARM側的應用程序)和信號處理層(DSP側的算法)之間的軟件模塊,
在編譯DSP端可執行代碼和ARM端應用程序時,都需要Codec Engine的支持。

Codec Engine主要有兩部分:
 ARM端應用適配層,提供了精簡的API和對應的庫給應用層使用。
 DSP的算法調用層,提供了DSP算法的接口封裝規範,是的所有的算法通過簡單的配置就可以編譯到DSP的可執行程序中。

最終的應用程序需要通過Codec Engine的API接口來下載DSP代碼,調用DSP端的封裝好的算法,以及進行ARM和DSP的通信。
關於Codec Engine的介紹,可以參考《幫您快速入門Codec Engine》。



Codec Engine底層ARM和DSP的通信是建立在DSP/BIOS Link之上的,DSP/BIOS Link真正實現ARM和DSP交互的軟件模塊。
由於DSP/BIOS Link是跨平臺的,也是有ARM部分和DSP部分組成,其中在ARM端,包括基於OS的驅動和供應用調用的庫文件,
DSP端,必須要用DSP/BIOS,DSP的可執行代碼需要包含DSP/BIOS Link的庫文件。DSP/BIOS Link常用的主要有如下幾部分的軟件模塊:

 PROC相關的,主要是用來做DSP芯片的控制,比如啓動,停止等,下載DSP的可執行代碼,以及直接讀寫DSP端的memory空間等
 MSGQ相關,ARM和DSP的通信是基於MSGQ的,MSGQ有輪詢等待的方式或者中斷的方式,
MSG是基於共享內存池的方式。Codec Engine通過MSGQ交互一些關鍵數據,
比如控制,和一些大塊數據的地址指針等。大量的數據交互需要通過cmem實現。



在ARM端,配合Codec Engine使用的軟件模塊有LinuxUtils或者WinceUtils,包含cmem,SDMA等,

cmem是用來在OS之外分配連續物理內存空間,進行物理地址到虛地址,以及虛地址到物理地址空間轉化的。爲了避免數據的多次複製,需要開闢一塊ARM和DSP共享的數據空間,ARM和DSP都可以直接訪問,

這部分空間需要通過CMEM管理。對ARM來說,CMEM是OS上的一個驅動程序,需要通過IOCTL來實現內存分配或者地址空間轉化。
由於DSP可以訪問任何物理地址空間,通過ARM傳給DSP的指針必須是物理地址。

爲了適配一些播放器的接口,DVSDK還提供了DMAI(Digital Media Application Interface),
DMAI提供了更爲精簡的媒體接口和基於OS的音視頻捕捉、回放等接口,
在Linux下的gstreamer和Wince下的dshow filter都是基於DMAI的。
並且DMAI也提供了最基本的測試應用例子,可以很方便的進行修改和測試。

如果只是調用現成的或者第三方的算法庫,可以只瞭解ARM端的軟件模塊,Codec Engine或者DMAI已經提供了豐富的應用接口,
DSP可以認爲是個單純的媒體加速器,把ARM+DSP的芯片當作ASIC一樣使用。如果要充分發揮DSP的性能,就需要對DSP進行開發了。Codec Engine對DSP的算法只是規範了接口,以便於和Codec Engine一起生成DSP的可執行程序。
開發DSP算法的工程師,和傳統的單核的DSP開發模式類似,只需要操作DSP核,基於CCS進行算法開發,最後封裝成xDM的接口就可以了。具體如何進行DSP的打包,


出處:http://www.linuxforum.net/forum/showthreaded.php?Cat=&Board=TI&Number=729833&page=0&view=collapsed&sb=5&o=0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章