OMAPL138的DVSDK雙核開發教程


1、DVSDK安裝

       本文提供的DVSDK雙核開發步驟的開發環境如下:

PC操作系統:Win7-64bit

虛擬機版本:VMwareWorkstation 7.0.0

Ubuntu版本:Ubuntu10.04-32bit

DVSDK版本:DVSDK-4.03

       DVSDK的安裝包dvsdk_omapl138-evm_04_03_00_06_setuplinux可以在OMAPL138資料光盤的tools目錄下找到,也可以在TI官網下載。下載前需要註冊一個TI賬號,註冊後才能用賬號去下載DVSDK和其他文件。

TI官網下載鏈接:

http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html

(1)       將DVSDK軟件包拷貝到Ubuntu虛擬機中,然後執行如下語句:

Host#    sudo chmod +xdvsdk_omapl138-evm_04_03_00_06_setuplinux

Host#    ./dvsdk_omapl138-evm_04_03_00_06_setuplinux

2、DVSDK配置

(1)       執行以下命令設置DVSDK環境變量,此環境變量指明DVSDK的安裝路徑,請根據DVSDK實際安裝路徑修改。

Host#    exportDVSDK="/home/tl/ti-dvsdk_omapl138-evm_04_03_00_06/"

(2)       執行以下命令進行DVSDK編譯設置。

Host#    sudo ${DVSDK}/setup.sh

       此命令運行的是DVSDK安裝目錄下的setup.sh腳本。

(3)       將文件系統安裝到默認路徑。

(4)       設置tftp路徑爲默認路徑。

(5)       設置u-boot的nfs環境變量參數爲虛擬機的默認IP地址。

(6)       設置內存的參數爲默認的128MB。

(7)       設置內核加載方式爲默認的TFTP。

(8)       設置文件加載方式爲默認的NFS。

(9)       配置完成。

3、DVSDK編譯

(1)       修改DVSDK頂層目錄下Rules.mak文件的58~59行內容爲如下。

#LINUXKERNEL_INSTALL_DIR=$(SDK_INSTALL_DIR)/psp/linux-2.6.37-psp03.21.00.04.sdk

LINUXKERNEL_INSTALL_DIR=/home/tl/omapl138/linux-2.6.37//廣州創龍OMAPL138開發板適用的linux-2.6.37內核源碼路徑

       以上操作的作用是將內核源碼路徑更換爲廣州創龍開發板適用的linux-2.6.37內核源碼路徑,務必確保內核源碼存在於/home/tl/omapl138/linux-2.6.37目錄下。linux-2.6.37源碼軟件包可以在光盤的Linux目錄下找到。

(2)       修改DVSDK頂層目錄下Makefile文件的3~5行內容爲如下:

#DEFAULT_LINUXKERNEL_CONFIG=da850_omapl138_defconfig

DEFAULT_LINUXKERNEL_CONFIG=da850_omapl138_tl_defconfig

DEFAULT_UBOOT_CONFIG=da850evm_config

       修改此處的作用是指明使用的內核配置文件。

(3)       進入DVSDK頂層目錄,並執行如下命令清理DVSDK源碼。

Host# make clean

(4)       在DVSDK頂層目錄中執行如下命令重新編譯DVSDK。

Host#    make all

(5)       在DVSDK頂層目錄中執行如下命令安裝DVSDK相關組件到文件系統。文件系統的路徑是"/home/tl/targetfs",此路徑可以通過Rules.mak的相關行修改。

Host#    sudo make install

       此操作會將DVSDK編譯生成的dsplinkk.ko、dm365mmap.ko、cmemk.ko等其他組件安裝到文件系統。dsplinkk.ko安裝在文件系統"/lib/modules/2.6.37/kernel/drivers/dsp"目錄下.

       更多應用開發案例請參考DVSDK安裝目錄中的如下文檔:

ti-dvsdk_omapl138-evm_04_03_00_06/docs/OMAPL138_Software_Developers_Guide.pdf

(6)       使用光盤中的linux-2.6.37內核鏡像和安裝有DVSDK雙核組件的文件系統啓動開發板。文件系統默認是在虛擬機的/home/tl/targetfs/目錄下,如用NFS啓動文件系統,請務必將U-Boot中的nfsroot設置爲文件系統所在路徑/home/tl/targetfs。U-Boot的mem參數設置爲"mem=32M@0xc0000000 mem=64M@0xc4000000",這樣做是爲了給DSP開闢一塊32MByte的內存空間,其他參數保持不變。假如使用的是256MByte的DDR2,U-Boot的mem參數設置爲"mem=32M@0xc0000000 mem=192M@0xc4000000"。具體設置請參考下圖NFS的設置。

 

4、DVSDK例子演示

       以下演示均使用DVSDK解壓出來的文件系統,默認是在虛擬機的/home/tl/targetfs/目錄下。


4.1 Matrix Application Launcher GUI演示

       連接LCD觸摸屏,開發板上電,在Login處輸入root再按回車鍵進入文件系統,執行以下命令啓動MatrixApplication Launcher GUI界面:

Target#        /etc/init.d/matrix-gui-estart

       第一次使用DVSDK解壓出來的文件系統,在啓動Matrix ApplicationLauncher GUI界面時,需要點擊觸摸屏進行校準。

       執行以下命令關閉Matrix Application LauncherGUI界面:

Target#        /etc/init.d/matrix-gui-estop

 

       也可以執行以下命令手動啓動觸摸屏校準程序:

Target#        ts_calibrate

 

4.2 DSPLink Examples演示

       在新產生的文件系統中,默認是不會安裝dsplinkk.ko、dm365mmap.ko、cmemk.ko這三個驅動,執行以下命令安裝此三個驅動程序,以後開機不需要再執行。

Target#        update-modules                              //更新驅動

Target#        modprobe -l                                    //查看是否更新成功

Target#     /etc/init.d/loadmodule-rc start  //載雙核通信相關驅動

 

       執行以下命令進入DSPLink Examples所在目錄:

Target#        cd /usr/share/ti/ti-dsplink-examples/

 

       各個例子的解釋請看用戶手冊的DSPLINK開發入門或者MCSDK開發入門相關章節。在當前目錄執行以下命令運行所有的DSPLinkExamples:

Target#        ./ti-dsplink-examples-run.sh

 

4.3 c6Run Example Applications演示

       C6EZRun是一個免費、開源的開發工具,使用戶可以在異構的DSP+ARM處理器上無縫地使用DSP。更多詳情請登錄以下網址:

       http://processors.wiki.ti.com/index.php/C6Run_Project

      

4.3.1 Setup

       執行以下命令重新加載App所需驅動模塊,假如在此之前其他程序沒有加載過CMEM、DSPLink、LPM等驅動模塊,unloadmodules.sh腳本可以不用執行。

Target#        ./unloadmodules.sh

Target#        ./loadmodules.sh

 

4.3.2 C6RunApp Examples

       C6RunAppExamples的作用是使用c6runapp工具運行一個DSP程序。

   在當前目錄執行以下命令運行一個簡單的“hello world例子:

Target#        ./hello_world_arm             //程序運行在ARM

Target#        ./hello_world_dsp             //程序運行在DSP,將信息返回到ARM打印

 

       在當前目錄執行以下命令運行浮點性能測試例子:

Target#      ./bench_arm

Target#      ./bench_dsp

Target#      ./cfft_arm

Target    ./cfft_dsp

4.4 C6Accel Apps演示

       C6AccelApp調用了DSP kernel APIs進行定點/浮點計算,執行以下命令運行測試程序:

Target#        ./loadmodules_omapl138_c6accel.sh            //加載相關內核驅動模塊

 

Target#        ./c6accel_app

      所有的測試數據將會保存在benchmarking.txt測試文件中,請輸入以下命令查看詳細的測試數據:

Target#     cat /usr/share/ti/c6accel-apps/benchmarking.txt

4.5 DMAI Apps 演示

       DMAI全稱是Davinci Multimedia ApplicationInterface,DMAI Apps主要演示音視頻、圖像等多媒體數據處理能力。執行以下命令進入DMAI Apps目錄並重新加載相關內核驅動:

Target#      ./etc/init.d/loadmodule-rc restart


4.5.1 Audio

       此例子將AAC文件解碼後送往Line out播放,在演示先將耳機接到Line out接口,然後執行以下命令,可以在耳機聽到解碼後的聲音。

Target#        ./audio_decode1_omapl138.x470MV -c aachedec -e decode -i /usr/share/ti/data/sounds/davincieffect.aac -n 1000


       執行以下命令可將AAC文件解碼爲PCM文件:

Target#        ./audio_decode_io1_omapl138.x470MV -c aachedec -e decode -i /usr/share/ti/data/sounds/davincieffect.aac -n 1000-o output.pcm


4.5.2 Display

       接上LCD顯示屏後執行以下命令,可在LCD上觀察到變化的豎條測試圖案:

Target#        ./video_display_omapl138.x470MV -y 16 -O lcd --display_buffer 2

 

4.5.2 Video

       執行以下命令可將H.264格式文件30幀解碼爲YUV格式文件:

Target#        ./video_decode_io2_omapl138.x470MV -c h264dec -e decode -i /usr/share/ti/data/videos/davincieffect_480x272.264-n 30 -o output.yuv

 

       執行以下命令可將YUV格式文件中分辨率爲480x272的30幀圖像編碼爲H.264 BP格式文件。

Target#        ./video_encode_io1_omapl138.x470MV -c h264enc \

-i output.yuv -o output.264 -r 480x272 -n 30


4.5.4 Speech

  執行以下命令將G.711 speech格式文件解碼爲 PCM格式文件:

Target#        ./speech_decode_io1_omapl138.x470MV -c g711dec -e decode -i /usr/share/ti/data/sounds/davincieffect.g711 -ooutput.pcm

 

       執行以下命令可將以上生成的PCM格式文件重新編碼爲G.711 speech格式文件:

Target#       ./speech_encode_io1_omapl138.x470MV -c g711enc -eencode -i output.pcm -o output.g711

 

4.5.5 Image

       執行以下命令可將JPEG格式文件解碼爲YUV格式文件:

Target#        ./image_decode_io1_omapl138.x470MV -c jpegdec -e decode  -i /usr/share/ti/data/images/remi003_422i.jpg -ooutput.yuv

 

       執行以下命令可將上面生成的YUV格式文件重新編碼爲JPEG格式文件:

Target#       ./image_encode_io1_omapl138.x470MV -c jpegenc -eencode -i output.yuv -o output.jpg -r 720x576 --iColorSpace 3 --oColorSpace 1

       以上參數和YUV文件的配置有關,默認的顏色空間格式是YUV422 ILE。如需瞭解更多關於此App相關參數請運行以下命令:

Target#        ./image_encode_io1_omapl138.x470MV -h

 

4.6 Qt/Embedded Examples 演示

       DVSDK的文件系統中提供了很多Qt演示程序,

       執行以下命令會運行一個日曆表Qt程序,如需停止請按Ctrl+C。

Target#        ./calendar -qws -geometry 480x240+0+0

 

4.7  GStreamer Pipelines演示

       GStreamer是一個開源的多媒體框架庫。利用它,可以構建一系列的媒體處理模塊,包括從簡單的ogg播放功能到複雜的音頻(混音)和視頻(非線性編輯)的處理。

       在進行演示前,請先將LCD顯示屏接好,同時將耳機接到Line out接口,然後執行以下命令重新加載相關內核驅動:

Target#        /etc/init.d/loadmodule-rc restart

 

       可以使用以下命令查看GStreamer已支持的開發包:

Target#        gst-inspect


4.7.1  H.264編解碼

       使用GStreamer做H.264編解碼測試,命令如下:

Target#      gst-launch videotestsrc num-buffers=1000 ! TIVidenc1 codecName=h264encengineName=codecServer ! filesink location=sample.264 -v         

 

       然後執行以下命令,可以在LCD上看到豎條測試圖像和黑白閃爍圖像。

Target#      gst-launch filesrc location=sample.264 ! typefind !TIViddec2 ! queue ! TIC6xColorspace engineName=codecServer ! queue !tidisplaysink2 -v    


4.7.2 MPEG-4編解碼

       使用GStreamer做MPEG-4編解碼測試,命令如下:

Target#       gst-launch videotestsrc num-buffers=1000 ! TIVidenc1 codecName=mpeg4encengineName=codecServer ! filesink location=sample.m4v -v 

       然後執行以下命令,可以在LCD上看到豎條測試圖像和黑白閃爍圖像。

Target#      gst-launch filesrc location=sample.m4v ! typefind !TIViddec2 ! queue ! TIC6xColorspace engineName=codecServer ! queue !tidisplaysink2 -v 


4.7.3 GStreamer 播放H.264視頻

       執行以下命令即可使用GStreamer播放H.264視頻,可在LCD看到播放效果。

Target#       gst-launch filesrc location=/usr/share/ti/data/videos/davincieffect_480x272.264! typefind ! TIViddec2 ! queue ! TIC6xColorspace engineName=codecServer ! queue! tidisplaysink2 -v



4.7.4 GStreamer 播放MPEG-4視頻

       執行以下命令即可使用GStreamer播放MPEG-4視頻,可在LCD看到播放效果。

Target#      gst-launch filesrc location=/usr/share/ti/data/videos/davincieffect_480x272.mpeg4

 ! typefind ! TIViddec2 ! queue !TIC6xColorspace engineName=codecServer ! queue ! tidisplaysink2 -v



4.7.5 GStreamer 播放MPEG-2視頻

       執行以下命令即可使用GStreamer播放MPEG-2視頻,可在LCD看到播放效果。

Target#      gst-launch filesrclocation=/usr/share/ti/data/videos/davincieffect_480x272.m2v ! TIViddec2codecName=mpeg2dec engineName=codecServer ! queue ! TIC6xColorspace engineName=codecServer! queue ! tidisplaysink2 -v 


4.7.6 GStreamer 播放AAC音頻

       執行以下命令即可使用GStreamer播放AAC音頻,可在耳機上聽到播放效果。

Target#     gst-launch filesrc location=/usr/share/ti/data/sounds/davincieffect.aac

num-buffers=100 ! typefind ! TIAuddec1 ! alsasink -v


詳細文檔請查閱廣州創龍使用手冊:

http://pan.baidu.com/s/1bnvRJh9?qq-pf-to=pcqq.c2c


       更多應用開發案例請參考DVSDK安裝目錄中的如下文檔:

ti-dvsdk_omapl138-evm_04_03_00_06/docs/OMAPL138_Software_Developers_Guide.pdf

 

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