OMAPL138的DVSDK雙核開發教程

1DVSDK安裝php

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

PC操做系統:Win7-64bitlinux

虛擬機版本:VMwareWorkstation 7.0.0app

Ubuntu版本:Ubuntu10.04-32bit框架

DVSDK版本:DVSDK-4.03ide

       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

2DVSDK配置

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-bootnfs環境變量參數爲虛擬機的默認IP地址。

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

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

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

9)       配置完成。

3DVSDK編譯

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.kodm365mmap.kocmemk.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/targetfsU-Bootmem參數設置爲"mem=32M@0xc0000000 mem=64M@0xc4000000",這樣作是爲了給DSP開闢一塊32MByte的內存空間,其餘參數保持不變。假如使用的是256MByteDDR2U-Bootmem參數設置爲"mem=32M@0xc0000000 mem=192M@0xc4000000"。具體設置請參考下圖NFS的設置。

 

4DVSDK例子演示

       如下演示均使用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.kodm365mmap.kocmemk.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所需驅動模塊,假如在此以前其餘程序沒有加載過CMEMDSPLinkLPM等驅動模塊,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 ApplicationInterfaceDMAI 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格式文件中分辨率爲480x27230幀圖像編碼爲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編解碼

       使用GStreamerH.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編解碼

       使用GStreamerMPEG-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

相關文章
相關標籤/搜索