davinc架构--环境搭建篇 【转】

Davinci架构有硬件环境和软件环境:
硬件环境就不用说,肯定拥有就是支持davinci架构的芯片的开发板,我用的devkit8000,官网把它叫做DVEVM,我开始一直把她当成也是软件,所以到网上一直搜都没搜到,郁闷不以,后来才发现就是开发板,看来这个就是英文理解问题啊。
软件环境,就是一些程序:
因为davinci架构下的软件最好在linux编译,所以肯定要有linux环境,这个是最大的软件。
我使用的是ubuntu9.04,非虚拟机形式,如果不太熟悉linux的,可以用虚拟机安装linux,这样可以和window切换,比较方便,如何安装linux我就不讲了,大家到网上搜就可以,装完linux,就装真正的软件。
它要包含那些程序呢:
1.dvsdk_setuplinux_3_00_02_44.bin
这个是核心,算法,VISA,驱动,也就是整个davinci架构的代码都在这里了。
dvsdk_setuplinux_3_00_02_44.bin安装后会生成很多文件夹:
jerry@jerry-laptop:~$ ls /home/jerry/dvsdk_3_00_01_42/
bin                      dvtb_3_00_016
examples                 biosutils_1_01_00    
   framework_components_2_24c64xplus_mp3dec_1_31_001
ceutils_1.06             linuxlibs
linuxutils_2_24_02        kernel_binaries
cg_xml_v2_12_00          local_power_manager_1_24
clips                    Makefile
codec_engine_2_24        Rules.make
dmai_2_00_01_04          targetfs
docs                     uninstall
dsplink_1_61_03           xdais_6_24
dvsdk_demos_3_00_00_12
其中codec_engine_2_24是最重要的,我们要开发,最好以这个为基础,这里面有一些库,同时一些事例。
2.xdctools_setuplinux_3_15_01_59.bin
     //这个是我们编译davinci软件要用的工具。
3.Dsp/bios
  dsp端运行的操作系统,因为在dsp运行的算法其实就是一个线程,要有操作系统才能真正跑起来。
   4.TI-C6x-CGT-v6.0.16.1.bin
   //这个是dsp的交叉编译链,即在linux下生成可以在c6系列dsp上运行的程序。
上面的软件都可以在
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_3_00/latest/index_FDS.html下载。
5.arm交叉编译链crossTool.
这个我用的是4.3.2版本,好像官网推荐是arm2008-q1.
可以在http://www.codesourcery.com/sgpp/lite/arm/portal/release830下载。
对于是omap3530最好也要下:
cs1omap3530_setuplinux_1_00_01-44.bin
这个是一些复杂算法及server。
因为当我们要使用dvsdk_demos编译复杂应用程序时,要用到这里的(server)cs.x64p
当然你还可以下文件系统等等,但是这些都不是必须的。
上面的软件都是直接执行就可以了。
安装以后我们就可以编译了:
配置:
编译前要修改一些配置文件,两个:
1.dvsdk根目录下的Rule.mk
将其中的一些变量路径修改即可,比如
DVSDK_INSTALL_DIR=${HOME}/dvsdk_3_00_01_42
2.更改code_engine/examples/xdcpath.mk
这个也是,要将各种路径设置对。
编译:
  进入
:~$cd /home/jerry/dvsdk_3_00_01_42/codec_engine_2_24/examples
/ti/sdo/ce/examples/
jerry@jerry-laptop:~/dvsdk_3_00_01_42/codec_engine_2_24/examples/ti/sdo/ce/examples$ ls
appsbuildutilscodecsextensionsservers
大家可以看到主要的关键的三个目录,apps,codecs,servers,分别放着应用程序代码,算法代码,算法服务器代码。
1因为apps也要用到server,故现编译一个servers,我们选择all_codecs
    cd servers/all_codecs
然后执行
make clean
        make
    即可
   如果出错,多数是前面配置Rule.mk,和xdcpaht.mk出错了,可以根据错误提示更改过来即可。
    编译完后会在bin/ti_platform_xx/下生成来两个.x64p程序。
     all_pm.x64Pall.x64P
2.编译应用app
  cd apps/video_copy
   make clean
    make
如果没出错,则在bin/ti_platform_xx/下生成来多个.x64p,及.x5vt程序。
app_local.x64P  app_local.xv5T  app_remote.xv5T
app_local.x64p是应用和算法都在dsp端的程序
app_local.xv5t是应用和算法都在arm端的程序
app_remote.xv5T是应用在arm端,算法在dsp端的程序,这个程序就是上面的all.x64P
然后我们执行:
      要执行,肯定要把程序拷贝到开发板上。
    将上面的程序都拷贝到开发板上,然后将dsplinkko.ko,cmem.ko,lpm.ko等驱动也拷贝到开发板,同时写一个加载驱动的脚本loadmodule.sh。
脚本文件内容如下:
#insert cmem driver
Insmodcmemk.kophys_start=0x85800000phys_end=0x86000000 pools=20x4096,10x131072,2x1048576
# insert DSP/BIOS Link driver
insmod dsplinkk.ko
# make /dev/dsplink
rm -f /dev/dsplink
mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0
# insert Local Power Manager driver
insmod lpm_omap3530.ko
rm -f /dev/lpm0
mknod /dev/lpm0 c `awk "/lpm/ {print \\$1}" /proc/devices` 0
然后执行这个脚本./loadmodule.sh
执行上面的脚本很有可能会出错,这是驱动版本和内核版本不匹配问题
只需重新编译驱动即可,这个会在下面章节讲解。
如果没有问题,然后就可以执行应用程序了。
./app_remote.xv5t.

你可能感兴趣的:(davinc达芬奇)