文档库 最新最全的文档下载
当前位置:文档库 › TI Davinci DM6446开发攻略——开发环境搭建

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

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

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 Workstatio n 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//下,就是你的linux系统普通用户账号,不是root账号。TI 建议用户使用su 命令切换到用户账号的权限下安装dvsdk,其在root下安装也没问题。使用以下命令开始安装dvsdk;

host $ ./dvsdk_setuplinux_2_00_00_22.bin

安装完dvsdk后,使用以下命令,按照提示安装xdctools和bios工具包到/home//dvsd k_2_00_00_22/目录下,

host $ ./xdctools_setuplinux_3_10_03.bin

host $ ./bios_setuplinux_5_33_06.bin

然后在/home//dvsdk_2_00_00_22/下先使用

host $ mkdir cg6x_6_0_23

产生cg6x_6_0_23/目录,执行以下命令安装ti_cgt_c6000_6.0.23到/home//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//dvsdk_2_00_00_22/cg6x_6_0_23/include:

/home//dvsdk_2_00_00_22/cg6x_6_0_23/lib

或ksh or bash:

host $ export C6X_C_DIR=/home//dvsdk_2_00_00_22/cg6x_6_0_23/include:

/home//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的Code c Servers到/home//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 通过samb a机制COPY到windows下的TFTP SERVER的目录。我们这里只介绍第1中方法。

使用tftp server 之前,首先确保你的linux 主机安装有xinetd,然后使用以下命令,查看你linu x主机是否安装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到/t ftpboot目录下,在板子上跑的UBOOT可以做很多update的工作了。

第五步:设置NFS

开发嵌入式LINUX一定少不了NFS,目的是提高应用软件的开发效率。笨办法就是频繁烧写rootfs到板子上,那是不可取的。

1)以普通用户进入linux host,如果你在ROOT下,使用exit,然后换成普通用户进入。 2)使用命令进入 /home/下,

host $ cd /home/

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 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//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//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///dm 6446/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,电话;135********。公司主要开发TI DM644X,DM6437产品,图像处理,视频分析,单目双目图像算法,机器视觉OPEN CV移植。

板子分核心板(CORE)和主板

核心板采用8层PCB板高精度工艺,低功耗芯片合理布局,使其具有最佳的电气性能和抗干扰性能。绝大部分的接口信号都引出到母座PIN上,完整的接口说明和提供对应的底板公座PCB封装,电源设计电路,让客户随心所欲的设计自己的底板,容易衍生系列产品,降低硬件设计风险,更快推进项目进度。

主板卡硬件资源包括:

◆板载1路16位CCD视频输入接口,可以方便与CMOS影像传感器连接,支持YUV4:2:2、BT656等格式;

◆板载支持4路模拟视频输入;

◆板载1路CVBS视频输出接口;

◆板载一路10/100M自适应以太网口;

◆板载USB2.0高速HUB接口,可同时接2个设备;

◆板载SD卡座,支持大容量外部存储;

◆板载实时时钟(PCF8563);

◆板载2路继电器输出GPIO接口;

◆板载2路光耦输出GPIO接口;

◆板载2路光耦输入GPIO接口;

◆板载1路RS232串口;

◆板载1路RS485串口;

◆板载JTAG仿真器接口及BOOTMODE 选择跳线;

◆板载状态指示LED

◆板载单个按键

◆板载4路音频输入,1路立体声音频输出

◆全面支持linux-2.6.18 操作系统,并可搭建完整的图形界面(GUI)开发环境;

◆供电要求:单DC 12V 供电。

相关文档
相关文档 最新文档