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,电话;13560768971。公司主要开发TI DM644X,DM6437产品,图像处理,视频分析,单目双目图像算法,机器视觉OPEN CV移植。
 
板子分核心板(CORE)和主板
 
 
 

核心板硬件资源介绍< XMLNAMESPACE PREFIX ="O" />

序号
核心板资源
描述
1
TMS320DM6446AZWT
可选(TMS320DM6441AZWT)
ARM926EJS-300MHz,DSP(C64+)-600MHz
2
DDR667或DDR800
256M-byte(可配置162MHz和202.5MHz)
3
NAND FLASH
1.8V,128M-byte,2K-page
4
复位芯片
提供稳定复位功能
5
硬件加密芯片
支持MAX-DALLAS-DS28E01-100(可选)
6
全部的IO引出插座
电源,USB2.0,VPFE,VPBE,PWM,EMAC(带MDIO),I2C,ASP(音频接口),SPI,UART0,UART1,JTAG,BOOT MODE,GPIO,SD卡接口
 
核心板低功耗芯片合理布局,使其具有最佳的电气性能和抗干扰性能。绝大部分的接口信号都引出到母座PIN上,完整的接口说明和提供对应的底板公座PCB封装,电源设计电路,让客户随心所欲的设计自己的底板,容易衍生系列产品,降低硬件设计风险,更快推进项目进度。
 
主板卡硬件资源包括:

◆板载4路模拟视频输入,支持PAL\NTSC制CCD摄像头输入;

◆板载1路CMOS影像传感器连接,比如美光MT9M112模组(可选);

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

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

◆板载USB2.0 HOST接口(可接国内3家3G模块);

◆板载SD卡座,支持2G(SDHC 32G软件可选);

◆板载1路RS232(默认UART2);

◆板载1路RS485(默认UART1,可选配置成GPRS+SIM卡接口);

◆板载 实时时钟PCF8563;

◆板载 I2C加密芯片(可选);

◆板载1路光耦输出;

◆板载1路光耦输入;

◆板载4个独立GPIO引脚座子;

◆板载DSP-JTAG仿真器接口、BOOTMODE选择跳线、UART0 DEBUG;

◆板载2个可控LED;

◆板载1个按键;

◆板载1路音频输入(2路输入可选);

◆板载1路音频输出(2路输出可选);

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

◆主板功耗:<5W

◆尺寸:158mm * 129mm

◆工作温度:商业级(0~70°)

◆相对湿度:5%到95%,非凝结

软件资源工具介绍

◆ Davinci整套LINUX开发开发环境(含VM虚拟机文件,RedHat EL5,GCC交叉编译工具链和DVSDK_2_00_00_22,我们全部帮客户设置好);

◆ 源码包TI ubl(经过移植修改);

◆ 源码包TI u-boot-2009.03(经过移植修改,支持jffs2);

◆ 源码包linux-2.6.18_pro5.0.0 (经过移植修改):

* 串口uart1、uart2驱动;

* 视频tvp5158 单路D1采集驱动(4路切换驱动,4CIF采集可选);

* 复合视频输出驱动;

* 文件系统jffs2、squasfs3.4;

* rtc8563驱动;

* 音频tlv320aic3x驱动,支持MIC和LINE输入;

* gpio驱动;

* SD卡驱动(默认2G,可选SDHC 32G);

* USB2.0 HOST驱动(完全支持国内3加3G模块);

* CMOS设计美光MT9M112模组驱动(可选);

* PHY网口驱动;

* I2C加密芯片驱动(可选);

◆ 根文件系统:TI源 target和本工作室裁减的rootfs;

◆ dvsdk_2_00_00_22 整个开发环境(全部配置好,客户可以方便设计CODEC);

◆ Decode(h.264、mpeg4、g711)(音视频解码);

◆ Encode(h.264、mpeg4、g711)(音视频编码);

◆ Encodedecode(h.264、mpeg4)(视频编解码);

◆ jpegenc(jpeg编码);

◆ jpegdec(jpeg解码);

◆ thttp-2.25b(WEB网络服务);

◆ V4L2视频输入输出源码;

◆ Audio loopback源码;

◆ rtc8563 应用程序源码;

◆ gpio应用程序源码;

◆ UART1-rs485应用程序源码;

◆ UART2-rs232应用程序源码;

◆ TI的DSP开发环境CCS V3.3;

◆生产烧写ubl和uboot工具;

(注:该工具可以直接方便烧写ubl和运行uboot,根本不用昂贵的仿真器烧写ubl,并可以通过串口动态下载uboot进行软件调试!)

◆ VMware-workstation-6.5.2.exe;

◆ TI dvsdk_2_00_00_22相关软件安装包。

TI Davinci DM6446开发攻略——开发环境搭建的更多相关文章

  1. Vue2.0 新手完全填坑攻略——从环境搭建到发布

    Jinkey原创感谢 showonne.yubang 技术指导Demo 地址:http://demo.jinkey.io/vue2源码:https://github.com/Jinkeycode/vu ...

  2. Vue2.0 新手完全填坑攻略—从环境搭建到发布

    http://www.open-open.com/lib/view/open1476240930270.html https://jingyan.baidu.com/article/91f5db1b2 ...

  3. Vue2.0 新手完全填坑攻略——从环境搭建到发布(转载)

    强力推荐,详情请点击此链接http://www.jianshu.com/p/5ba253651c3b

  4. Davinci DM6446 Codec Engine双核通信环境的搭建

    根据前几篇文章,一个DM6446的系统已经架构完成.但是有很多人都喜欢TI的机制,毕竟双核软件开发对很多工程师来说是非常麻烦的事情,既然TI提供开发套件和开发包,那么直接做OEM就可以了,底层的东西不 ...

  5. TI Davinci DM6446开发攻略——根文件系统的裁剪和移植

    一.补充文件系统知识 Linux根文件系统是存放tool软件.lib文件.script(脚本).配置文件.其他特殊文件.自己开发的应用程序的地方.嵌入式linux的根文件系统rootfs就像windo ...

  6. Davinci DM6446开发攻略——DSP开发工程建立

    前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...

  7. Davinci DM6446开发攻略——linux-2.6.18移植

     TI DAVINCI 使用最新的内核是montavista linux-2.6.18,之前说过,国内很多公司,包括开发板的软件包,一直在使用montavista linux-2.6.10,这个版本准 ...

  8. Davinci DM6446开发攻略——u-boot-1.3.4移植(1)

    UBOOT的版本更新速度比较快,截止今天,稳定正式的版本是u-boot-2009.11-rc2,而TI最新的EVM开发包里的UBOOT是1.2.0版本,国内很多公司还一直使用u-boot-1.1.4和 ...

  9. Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写

      很长一段时间没有更新博客了,是因为要推出新开发方案和做好客户服务工作,忙得不易乐乎.有关DAVINCI U-BOOT的移植,以前写过一篇u-boot-1.3.4(2008年的),其实和这个u-bo ...

随机推荐

  1. Node.js调用C#代码

    在Node.js的项目中假如我们想去调用已经用C#写的dll库该怎么办呢?在这种情况下Edge.js是一个不错的选择,Edge.js是一款在GitHub上开源的技术,它允许Node.js和.NET c ...

  2. NOI2001 食物链

    食物链 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种 ...

  3. Cypher查询语言--Neo4j 之高级篇 (六)

    目录 排序Order by 通过节点属性排序节点 通过多节点属性排序节点 倒序排列节点 空值排序 Skip 跳过前三个 返回中间两个 Limit 返回第一部分 函数Functions 判断 All A ...

  4. testlink用例的导出到Excel

    一直在网上寻找怎么把testlink的用例导出到Excel中,以及把Excel中已经写好的用例导入到Testlink中的方法.根据现网的经验,然后修改了一下.贴出来,以飨有这方面需求的测试同仁. Te ...

  5. Selenium+PhantomJS实现简易有道翻译爬虫

    Selenium一款自动化测试工具,当然用来写爬虫也是没有问题的.它支持Chrome.Safari.Firefox等主流界面式浏览器,另外它也支持多种语言开发,比如 Java,C,Ruby,Pytho ...

  6. python爬虫(4)——正则表达式(一)

    在前几篇文章中我们使用了python的urllib模块,做了一些访问网页的工作.现在介绍一个非常强大的工具--正则表达式.在讲述正则的时候,我参考了<精通正则表达式(第三版)     ---Je ...

  7. laypage 使用

    最近发现一个特别好用的前端分页插件,分享一下 <!doctype html> <html> <head> <meta charset="utf-8& ...

  8. 2017年StackOverflow上最好的20个Python问题

    1.Python的 .. (点号 点号) 是什么语法? 答案地址:https://stackoverflow.com/questions/43487811/what-is-python-dot-dot ...

  9. Selenium常用API用法示例集----下拉框、文本域及富文本框、弹窗、JS、frame、文件上传和下载

    元素识别方法.一组元素定位.鼠标操作.多窗口处理.下拉框.文本域及富文本框.弹窗.JS.frame.文件上传和下载 元素识别方法: driver.find_element_by_id() driver ...

  10. MySQL数据库基础(二)(约束以及修改数据表)

    一,约束以及修改数据表 约束的作用?1.约束保证数据的完整性.一致性:2.约束分为表级约束.列级约束:3.约束类型包括:NOT NULL(非空约束).PRIMARY KEY(主键约束).UNIQUE ...