Chinaunix首页 | 论坛 | 博客
  • 博客访问: 515291
  • 博文数量: 95
  • 博客积分: 5168
  • 博客等级: 大校
  • 技术积分: 1271
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-28 23:31
文章分类

全部博文(95)

文章存档

2013年(2)

2012年(3)

2011年(1)

2010年(8)

2009年(81)

分类:

2009-10-23 19:25:29

-------------------------------------------
本文系本站原创,欢迎转载!
转载请注明出处:
http://sjj0412.cublog.cn
-------------------------------------------

Davinci架构有硬件环境和软件环境:

硬件环境就不用说,肯定拥有就是支持davinci架构的芯片的开发板,我用的devkit8000,官网把它叫做DVEVM,我开始一直把她当成也是软件,所以到网上一直搜都没搜到,郁闷不以,后来才发现就是开发板,看来这个就是英文理解问题啊。

软件环境,就是一些程序:

因为davinci架构下的软件最好在linux编译,所以肯定要有linux环境,这个是最大的软件。

我使用的是ubuntu9.04,非虚拟机形式,如果不太熟悉linux的,可以用虚拟机安装linux,这样可以和window切换,比较方便,如何安装linux我就不讲了,大家到网上搜就可以,装完linux,就装真正的软件。

它要包含那些程序呢:

.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_24  c64xplus_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上运行的程序。

上面的软件都可以在

下载。

5.arm交叉编译链crossTool.

这个我用的是4.3.2版本,好像官网推荐是arm2008-q1.

可以在下载。

对于是omap3530最好也要下:

 

这个是一些复杂算法及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

apps  buildutils  codecs  extensions  servers

大家可以看到主要的关键的三个目录,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.x64P  all.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

Insmod  cmemk.ko  phys_start=0x85800000  phys_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.

 

阅读(2856) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

sjj04122009-11-21 11:37:04

dsplinkko.ko,cmem.ko,lpm.ko这些在开发包里有,由于这些驱动编译时使用的内核和你的内核不一致,所以insmod时会出错,这是你要自己以你的内核重新编译这些驱动。

chinaunix网友2009-11-04 15:54:35

你好!我现在正在使用OMAP3530,刚着手,还很乱,开到你的文章,收益很多。我想请问,你上面提到的dsplinkko.ko,cmem.ko,lpm.ko等驱动是自己做的还是在哪个文件夹下面有呢? 另外,如果还有OMAP3530的开发资料和经验,请在你的博客上贴出来吧,小弟感激不尽了,谢谢!