Board logo

标题: TI Davinci DSP DM6446开发攻略 -- 开发环境搭建 [打印本页]

作者: yuyang911220    时间: 2017-6-20 10:25     标题: TI Davinci DSP 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 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的工作了。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0