1、DVSDK安裝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官網下載連接:性能
(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