登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: TI Davinci DM6446开发攻略——开发环境搭建     [回主站]     [分站链接]
标题
TI Davinci DM6446开发攻略——开发环境搭建
clq
浏览(0) + 2010-06-09 11:01:07 发表 编辑

关键字:

来自 http://zjbintsystem.blog.51cto.com/964211/273687


clq
2010-6-9 11:03:52 发表 编辑

TI Davinci DM6446开发攻略——开发环境搭建


2010-02-02 22:55:27
 标签:TI Davinci DM6446   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务 必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zjbintsystem.blog.51cto.com/964211/273687
        TI DAVINCI DM6446的开发环境搭建不像三星S3C2410,S3C2440,ATMEL的AT91SAM9260之类的单核ARM那么简单,因为DM6446还 有DSP端的开发环境,以及双核之间的通信和程序编译等问题,所以开发攻略第一步就是要搭好开发环境。其实TI的EVM(TI 的开发板)也提供相关的EVM start guide(sprue66f.pdf),适合参考。
        DAVINCI开发环境搭建基本上可分以下几步:
        1) 准备好各种相关的windows,linux,DAVINCI 软件开发包安装软件;
        2) linux环境搭建;
        3) ARM编译环境搭建;
        4) DSP编译环境搭建;
        5) 编译DSP算法LIB,生成x64P,ARM端可执行程序调用运行;
   
第一步:相关软件准 备
    LINUX下的软件工具包如下:
    1)VMware-workstation;
    2)RedHat Enterprise Linux Server 5(server 4 也可以);
    3)mvl_5_0_0801921_demo_sys_setuplinux.bin;
      (这是 GCC交叉编译工具,根文件系统target。注册TI的账号,可以从TI的网站上下载)
    4)mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin;
       (最新montavista linux-2.6.18内核等安装包)
    5)dvsdk_setuplinux_2_00_00_22.bin;这个是TI 自己EVM的软件开发包)
    6)bios_setuplinux_5_33_06.bin;
    7)xdctools_setuplinux_3_10_03.bin;
    8)ti_cgt_c6000_6.0.23_setup_linux_x86.bin
      (以上3个文件都是从TI上下载比较新的dvsdk的工具链)
    DSP开发 工具:
    1)CCS3.3;
    2)bios_setupwin32_5_33_06.exe;
    (和LINUX里的版本bios_setuplinux_5_33_06配对)
    补充一下,本人这里基本上都是从TI上下载比较新的安装包,很多公司和朋友目前还都停留在linux-2.6.10和mvl_4_0_1上开发;
 
第二步:linux环境搭建
    有关如何搭建,本人已在之前发表一 篇《RedHat Enterprise Linux Server 5 在VMware Workstation 6.5的安装》里有详细介绍,一定要选择安装图形界面的,这里不重复。配置好samba后,把从TI上下 载的安装包COPY到一个temp的目录里;
 
第三步:ARM编译环境搭建
    上一步搞定后,以ROOT身份进入linux环境。
    1) 搭建montavista linux环境
    按以下命令安装 GCC(arm_v5t_le)交叉编译工具,安装过程按照提示操作,运行时会提示安装目录的选择,建议/opt/mv_pro_5.0.0
 
    host $ ./mvl_5_0_0801921_demo_sys_setuplinux.bin
    host $ ./mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin
 
执行上面的命令后,会在/opt /mv_pro_5.0.0/目录下生成mvltools5_0_#######.tar.gz和DaVinciLSP_#_#_#_#.tar.gz的 文件,“#”表示版本。mvltools5_0_##包括GCC交叉编译环境和根文件系统(target),DaVinciLSP_##里包含montavista linux-2.6.18的内核源代码。用以下命令把它们解压到当前目录:
 
       host $ tar zxf mvltools5_0_#######.tar.gz
       host $ tar zxf DaVinciLSP_#_#_#_#.tar.gz
      
       以上两个开发包是最基本的,至于下面要安装的TI 自己的dvsdk,没有它也可以照样开发DM6446,因为DSP算法开发也可以使用常用的方法生成*.bin文件,放到根文件系统,当做一个应用文件 boot起来也是可以的,那是后话。
    补充提示:由于 mvl_5_0_0801921_demo_sys_setuplinux.bin和 mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin等文件比较占用虚拟机的空间,建议安装完后,把它们删 除。如果有些*.bin运行不了,请使用chmod +x *.bin改变文件属性。
    2)安装TI DVSDK工具链
     dvsdk存放路径/home /<useracct>/下,<useracct>就是你的linux系统普通用户账号,不是root账号。TI 建议用户使用su <user>命令切换到用户账号的权限下安装dvsdk,其在root下安装也没问题。使用以下命令开始安装dvsdk;
     host $ ./dvsdk_setuplinux_2_00_00_22.bin
     安装完dvsdk后,使用以下命令,按照提示安装xdctools和bios工具包到/home/<useracct>/dvsdk_2_00_00_22/ 目录下,
 
     host $ ./xdctools_setuplinux_3_10_03.bin
     host $ ./bios_setuplinux_5_33_06.bin
     然后在/home/<useracct>/dvsdk_2_00_00_22/ 下先使用
     host $ mkdir cg6x_6_0_23
         产生cg6x_6_0_23/目录,执行以下命令安装ti_cgt_c6000_6.0.23到/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/
     host $ ./ti_cgt_c6000_6.0.23_setup_linux_x86.bin
 
     设置环境变量
     csh:
         host $ setenv C6X_C_DIR /home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/include:
/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/lib
        或ksh or bash:
host $ export C6X_C_DIR=/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/include:
/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/lib
    其实以上的环境变量的设计也可以在 dvsdk_2_00_00_22/Rules.make里设置。对应XDC_INSTALL_DIR宏 及BIOS_INSTALL_DIR宏,需要改成如下值:
XDC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdctools_3_10_03
BIOS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/bios_5_33_06
在需要使用到DSP程序编译处,需要改动相应的CODEGEN_INSTALL_DIR宏如下:
CODEGEN_INSTALL_DIR = $(DVSDK_INSTALL_DIR)/cg6x_6_0_23
 
     3)安装Codec Servers
     Codec Servers就是提供ARM端调用DSP端算法的一个服务机制,使用以下命令安装DM6446的Codec Servers到/home/<useracct>/dvsdk_2_00_00_22下,
     host $ ./dm6446_codecs_setuplinux_#_#_#_#.bin
 
     4) 最后,把临时的*.bin都删除掉,毕竟文件很大,保留在VM里占空间。到这里,ARM端的开发环境已经搭建完。
 
第四步:设置TFTP SERVER
        有两种方法可以实现,一个在Redhat Linux 5里设置 TFTP SERVER,在根目录/下产生tftpboot目录,使用chmod -R 777 /tftpboot/改变权限属性,然后配置linux 里的TFTP server。另一个是直接使用windows下的TFTP SERVER软件,把在LINUX下生成的文件,比如U-BOOT,KERNEL,ROOTFS 通过samba机制COPY到windows下的TFTP SERVER的目录。我们这里只介绍第1中方法。
    使用tftp server 之前,首先确保你的linux 主机安装有xinetd,然后使用以下命令,查看你linux主机是否安装TFTP SERVER:
 
host $ rpm -q tftp-server
 
如果出现: tftp-server-0.xx-x.x字样,表明安装成功。没有的话,你需要从REDHAT LINUX5的镜像光盘CD里SERVER目录下,使用命令(rpm -ivh tftp-server-0.42-3.1.i386.rpm)安装,或者直接把tftp-server-0.42-3.1.i386.rpm解压出来放 到临时文件夹里同样使用rpm -ivh tftp-server-0.42-3.1.i386.rpm安装。
 
进入根目录/下,使用命令
 
host $ mkdir /tftpboot
host $ chmod -R777 /tftpboot
host $ /sbin/chkconfig tftp on
host $ /sbin/chkconfig --list
 
这时linux主机会显示
..............
xinetd based services:
        chargen-dgram:  off
        chargen-stream: off
        cvs:            off
        daytime-dgram:  off
        daytime-stream: off
        discard-dgram:  off
        discard-stream: off
        echo-dgram:     off
        echo-stream:    off
        eklogin:        off
        ekrb5-telnet:   off
        gssftp:         off
        klogin:         off
        krb5-telnet:    off
        kshell:         off
        rsync:          off
        tcpmux-server:  off
        tftp:           on
        time-dgram:     off
        time-stream:    off
on表示TFTP SERVER已经运行。这时你可以把ubl.bin uboot.bin kernel.bin之类的bin文件COPY到/tftpboot目录下,在板子上跑的UBOOT可以做很多update的工作了。
第五步:设置NFS
    开发嵌入式LINUX一定少不了NFS,目的是提高应用软件的开发效率。笨办法就是频繁烧写rootfs到板子上,那是不可取的。
    1) 以普通用户<useracct>进入linux host,如果你在ROOT下,使用exit,然后换成普通用户进入。
    2)使用命令进入 /home/<useracct>下,
 
    host $ cd /home/<useracct>
    host $ mkdir -p dm6446/nfs_rootfs
    host $ cd dm6446/nfs_rootfs
   
   3)切换到root
    host $ su root
    host $ cp -a /opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/target/* .
    host $ chown -R <useracct> opt
 
   cp -a 命令很耗时间,因为东西很多,就是把之前安装的mvl_5_0_0801921_demo_sys_setuplinux.bin里的根文件系统 target目录下的东西全部COPY到当前目录下(注意那个"."),其实这个target就是TI EVM的根文件系统,超级大!不过使用nfs不用管它的大小,等制作rootfs烧到板子上的时候,再裁减不迟。
    4)编辑linux host /etc/exports文件,
   
     host $ vi /etc/exports
    内容:/home/<useracct>/dm6446/nfs_rootfs *(rw,no_root_squash,no_all_squash,sync)输入,注意"*"和"("之间不能有空格,它们是连在一起写的。使用 wq保存exports文件退出。
 
    5)还是在root账号下,使用以下命令激活nfs,
    host $ /usr/sbin/exportfs -av
    host $ /sbin/service nfs restart
 
    6)检验并关闭linux host的防火墙:
    host $ /etc/init.d/iptables status
    host $ /etc/init.d/iptables stop
    到这里linux host的nfs已经搞定,我们以后可以使用下面的方法测试nfs。
 
    使用以下命令得到linux host的IP,gatewayip,netmask等信息。
    host $ /sbin/ifconfig
    然后在板子上的U-BOOT命令下,输入以下信息:
    myboard # setenv ipaddr 192.168.1.188(本人板子u-boot ip)
    myboard # setenv serverip 192.168.1.251(本人linux host ip)
    myboard # setenv netmask 255.255.255.0
    myboard # setenv gatewayip 192.168.1.1
    myboard # setenv nfshost 192.168.1.251
    myboard # setenv rootpath /home/<useracct>/dm6446/nfs_rootfs
    myboard # setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=192.168.1.188:192.168.1.251:192.168.1.1:255.255.255.0:::off root=/dev/nfs nfsroot=192.168.1.251:/home/<useracct>//dm6446/nfs_rootfs,nolock mem=120M
    myboard # saveenv(保存)
    myboard # printenv
   (检查刚才的输入是否正确,否则NFS挂不上根文件系统)
 
第六步:设置GCC交叉编译环境
 
    以普通用户login,vi 编辑~/.bashrc文件,添加
 
PATH="/opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/bin:
/opt/mv_pro_5.0.0/montavista/pro/bin:
/opt/mv_pro_5.0.0/montavista/common/bin:$PATH"
 
保存退出,然后使用以下命令生效,或者退出系统再登陆也可以。
host $ source ~/.bashrc
 
其实,使用root身份处理也行。
 
顺便晒晒我们公司的开发板,如果哪位朋友有需要可以联系本人QQ-601712635,电 话;13560758971。公司主要开发TI DM644X,DM6437产品,图像处理,视频分析,单目双目图像算法,机器视觉OPEN CV移植。
 
板子分核心板(CORE)和主板
核心板硬件资源介绍
序号
核心板资源
描述
1
TMS320DM6446AZWT
可选(TMS320DM6441AZWT
ARM926EJS-300MHz,DSP(C64+)-600MHz
2
DDR667DDR800
256M-byte(可配置162MHz202.5MHz
3
NAND FLASH
1.8V128M-byte2K-page
4
复位芯片
提供稳定复位功能
5
硬件加密芯片
支持MAX-DALLAS-DS28E01-100(可选)
6
全部的IO引出插座
电源,USB2.0VPFEVPBEPWMEMAC(带MDIO),I2CASP(音频接口),SPIUART0UART1JTAGBOOT MODEGPIOSD卡接口
 
核心板采用8PCB板高精度工艺,低功耗芯片合理布局,使其具有最佳的电气性能和抗干扰性能。绝大部分的接口信号都引出到母 座PIN上,完整的接口说明和提供对应的底板公座PCB封 装,电源设计电路,让客户随心所欲的设计自己的底板,容易衍生系列产品,降低硬件设计风险,更快推进项目进度。
 
主板卡硬件资源包括:
板载116CCD视频输入接口,可以方便与CMOS影像传感器连接,支持YUV4:2:2BT656等格式;
板载支持4模拟视频输入;
板载1CVBS视频输出接口;
板载一路10/100M自适应以太网口;
板载USB2.0高速HUB接 口,可同时接2个设备;
板载SD卡座,支持大容量外部存储;
板载实时时钟(PCF8563);
板载2路继电器输出GPIO接 口;
板载2路光耦输出GPIO接口;
板载2路光耦输入GPIO接口;
板载1RS232串口;
板载1RS485串口;
板载JTAG仿真器接口及BOOTMODE 选 择跳线;
板载状态指示LED
板载单个按键
板载4路音频输入1路立体声音频输出
全面支持linux-2.6.18 操作系统,并可搭建完整的图形界面(GUI)开发环境;
供电要求:单DC 12V 供电。
 
 
 

本文出自 “集成系统-人生观” 博客,请务必保留此出处http://zjbintsystem.blog.51cto.com/964211/273687



类别:linux技术 技术圈(0)阅读(2070) ┆ 评论(21)推送到技术圈返回首页  


    文章评论
 <<   1   2   >>   页数 ( 1/2 )  
2010-02-03 10:10:29
楼主您好!
我现在也在用CCS3.3进行6446的开 发。昨天遇到了一个问题,今天早上在网上搜索,正好看到您昨天晚上写的文章。想请教一下,video_copy.c在Linux下编译连接都没错误。后来 我想调用emcv,就换到CCS下编译video_copy.c,将相关头文件从Linux里拷到CCS工程目录里。编译,提示gt.h里面有错 误,video_copy.c跟GT有关行也有错误。后来我把Linux里的devem_1_20文件夹整个拷到Windows里,把相关头文件路径加到 CCS的include search path里,编译还是有原来同样的错误。不知道楼主遇没遇到类似的问题?安装bios_setupwin32_×_××_××.exe是不是可以解决?

2010-02-03 12:03:16
本人目前还没有碰到gt.h的错误,你用的是mvl_4_0_1和dvsdk_1_30_00_40还 是mvl_5_0_0和dvsdk_2_00_00_22?bios_setupwin32_×_××_××版本和你在linux下安装的版本是否对应?

2010-02-03 14:19:16
dvsdk_setuplinux_1_20_00_10.bin 和mvl_target_setuplinux_1_20_00_10.bin。bios_setupwin32_×_××_××还没有装,用CCS这个 必须装吗?

2010-02-03 15:34:40
在windows下的bios版本应该对应,装了以后,在CCS的help菜单下选择 about...,然后会跳出一个界面,点击“Component Manager”,打开(DSP/BIOS)的列表,选择TMS320C64XX,把你刚装好的BIOS对应版本打钩(使能),然后编译试试。

2010-02-03 15:42:09
"gt.h里面有错误,video_copy.c跟GT有关行也有错误",你可以把错误的信息贴过来 吗?也许可以帮你看看。

2010-02-03 16:59:19
照楼主说的做了,还是原来的错误:
[videnc_copy.c] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -g -fr"C:/CCStudio_v3.3/MyProjects/canny_emcv/Debug" -i"C:/dvevm_1_20/xdais_5_10/packages/ti/xdais/dm" -i"C:/dvevm_1_20/xdais_5_10/packages/ti/xdais" -i"C:/dvevm_1_20/codec_engine_1_10_01/packages/ti/sdo/ce/trace" -i"C:/dvevm_1_20/dvevm_1_20/cg6x_6_0_14/include" -d"_DEBUG" -mv6400 -@"Debug.lkf" "videnc_copy.c"
"C:/dvevm_1_20/codec_engine_1_10_01/packages/ti/sdo/ce/trace/gt.h", line 75: error: expected a type specifier
"C:/dvevm_1_20/codec_engine_1_10_01/packages/ti/sdo/ce/trace/gt.h", line 75: error: function returning function is not allowed
"C:/dvevm_1_20/codec_engine_1_10_01/packages/ti/sdo/ce/trace/gt.h", line 84: error: identifier "GT_TimeFxn" is undefined
"C:/dvevm_1_20/codec_engine_1_10_01/packages/ti/sdo/ce/trace/gt.h", line 108: error: identifier "UInt8" is undefined
"C:/dvevm_1_20/codec_engine_1_10_01/packages/ti/sdo/ce/trace/gt.h", line 192: error: function returning function is not allowed
"C:/dvevm_1_20/codec_engine_1_10_01/packages/ti/sdo/ce/trace/gt.h", line 256: error: identifier "UInt8" is undefined
"videnc_copy.c", line 229: error: identifier "UInt8" is undefined
"videnc_copy.c", line 229: error: expected a ")"
"videnc_copy.c", line 229: error: expected a ")"
"videnc_copy.c", line 236: error: identifier "UInt8" is undefined
"videnc_copy.c", line 236: error: expected a ")"
"videnc_copy.c", line 236: error: expected a ")"
"videnc_copy.c", line 250: error: identifier "UInt8" is undefined
"videnc_copy.c", line 250: error: expected a ")"
"videnc_copy.c", line 250: error: expected a ")"
"videnc_copy.c", line 289: error: identifier "UInt8" is undefined
"videnc_copy.c", line 289: error: expected a ")"
"videnc_copy.c", line 289: error: expected a ")"
"videnc_copy.c", line 331: error: identifier "UInt8" is undefined
"videnc_copy.c", line 331: error: expected a ")"
"videnc_copy.c", line 331: error: expected a ")"
"videnc_copy.c", line 365: error: identifier "UInt8" is undefined
"videnc_copy.c", line 365: error: expected a ")"
"videnc_copy.c", line 365: error: expected a ")"
"videnc_copy.c", line 372: error: expected a ")"
"videnc_copy.c", line 372: error: expected a ")"
"videnc_copy.c", line 444: error: expected a ")"
"videnc_copy.c", line 444: error: expected a ")"
"videnc_copy.c", line 474: error: identifier "UInt8" is undefined
"videnc_copy.c", line 474: error: expected a ")"
"videnc_copy.c", line 474: error: expected a ")"
"videnc_copy.c", line 481: error: expected a ")"
"videnc_copy.c", line 481: error: expected a ")"
33 errors detected in the compilation of "videnc_copy.c".

>> Compilation failure

Compile Complete,
33 Errors, 0 Warnings, 0 Remarks.
热切盼望楼主详细写一篇基于 DVEVM6446的CCS配置博文,有劳了

2010-02-03 18:21:18
简单看一下,在CCS上建的工程配置确实不对,一些头文件比如include <tistdtypes.h>要加上,一些链接配置是有问题的,具体有时间再看看,因为本人不是按你这种方法编译DSP算法。

2010-02-03 18:25:03
这里边有一篇文章,http://www.61ic.com/Article/DaVinci /DM644X/200807/20709.html
你可以参考一下。

2010-02-03 19:52:58
我看了那篇文章,只编译算法,不编译 video_copy.c,然后在Linux下用video_copy.c调用算法。我实践一下,有问题在再来请教。还有楼主调用过emcv吗?

2010-02-04 11:18:17
我们采用另外的DSP和ARM的通信机制,毕竟video_copy.c被TI屏蔽很多东西,不适合我 们做视频算法。

2010-03-17 10:47:40
你好,能不能发 dvsdk_setuplinux_2_00_00_22.bin给我?
邮箱124140989@qq.com
谢谢!

2010-03-17 11:32:43
这个有200多M,建议你从TI上下载。这些都是免费的。

2010-03-17 11:44:00
这是链接:
http://wiki.mytiwiki.com/index.php/DMAI_GStreamer_Plug-In_Getting_Started_Guide
里 边包括交叉工具也有,慢慢下吧。工具

2010-04-08 18:51:42
xdctools_setuplinux_3_10_03.bin,ti_cgt_c6000_6.0.23_setup_linux_x86.bin; 这几个链接下不了,用迅雷下后缀名是html;不清楚这是什么情况

2010-04-08 21:28:41
ti_cgt_c6000_6.0.23_setup_linux_x86.bin 请问这个在哪里找到的,谢谢。

clq
2010-6-9 11:08:44 发表 编辑

http://processors.wiki.ti.com/index.php/DMAI_GStreamer_Plug-In_Getting_Started_Guide#Cross-compile_toolchain

这个地址是关键.


总数:2 页次:1/1 首页 尾页  
总数:2 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1