您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> TI专栏 >> TI DaVinci >> TMS320DM3x SOC >> 正文
  [组图]DAVINCI DM3730开发攻略——开发环境篇           ★★★ 【字体:
DAVINCI DM3730开发攻略——开发环境篇
作者:zjb_inte…    文章来源:zjb_integrated    点击数:    更新时间:2013-8-1    
现在让我们开始动手搭建环境,我们是基于Vmware虚拟机的环境,在LINUX HOST进行开发的。开发环境的LINUX叫HOST,而板子运行的linux环境叫target。
 
第一、   Vmware的安装
到今天为止,Vmware的版本升级到9.0.2以上了,破解版网上有,当然买正版的更好用。有关Vmware的安装,和以前的Vmware7.1版本一样的,在本人博客另一篇《DAVINCI DM36X开发攻略——RHEL6VM7.1的安装》 (http://zjbintsystem.blog.51cto.com/964211/502090)已经详细介绍Vmware的安装方法,当然这里下面要安装的LINUX HOST是TI指定的ubuntu-10.04 LTS,而不是那个RHEL6,这里跳过不再介绍。
 
第二、   Ubuntu-10.04 LTS的安装
1、Ubuntu-10.04 LTS正式安装
在《DAVINCI DM365-DM368开发攻略——开发环境搭建》(http://zjbintsystem.blog.51cto.com/964211/621435)里已经介绍Ubuntu-10.04 LTS,其实Ubuntu-12.10的版本早就出来了,TI还是建议我们安装他们的DM3730 DVSDK4_xx最好使用Ubuntu-10.04 LTS,否则无法正常安装。本人试过Ubuntu 10.10 LTS 32-bit的安装,果然DVSDK4_0_X确实安装不成功,没时间查查原因。如果有些朋友喜欢更高级的Ubuntu版本,还有个笨办法就是先在Ubuntu-10.04 LTS安装好,然后把整个dvsdk4_xx文件夹压缩打包,再到放到高级的Ubuntu解压,注意一下路径对应,就可以用了。网友可以按照《DAVINCI DM365-DM368开发攻略——开发环境搭建》里 Ubuntu-10.04 LTS环境搭建进行安装,这里特别提到的一点是,分配虚拟硬盘的大小时,建议分配30G以上,见下图。
图-1 分配虚拟机硬盘
图-2 本人的VM硬盘分配
本人的PC机内存是4G,给虚拟机这边分1252MB或1536MB是没问题的。如果使用你的PC机是2G的内存,那建议你分配512MB给虚拟机,效率有点慢。
图-3 内存分配
2、linux host虚拟机和WINDOWS共享文件夹设置
因为DM3730的DVSDK很大,Android 2.2的开发包也很大,而且以后开发的时候,会发觉Ubuntu10.vmdk文件越来越大,这个开始一直困扰本人和其他网友,后来发觉HOST里/usr/bin/vmware-toolbox和/usr/bin/vmware-toolbox-cmd的用法后,这个就决解了,红帽子LINUX RHEL5和RHEL6也是这个方法,这个等安装完DVSDK开发包后,再介绍Ubuntu文件越来越大的解决方法。安装完Ubuntu-10.04 LTS后,继续安装Vmware Tools,这个东西非常有用,方法见《DAVINCI DM365-DM368开发攻略——开发环境搭建》(http://zjbintsystem.blog.51cto.com/964211/621435)。
然后继续设置和WINDOWS共享文件夹,先在WINDOWS下建立共享文件夹,见图-4。
图-4 先在WINDOWS下建立共享文件夹
图-5-0 VM共享文件夹设置
然后在VM->settings里按图-5进行设置,那么进入虚拟机命令行后,使用#cd /mnt/hgfs/dm3730,就可以看到WINDOWS共享目录dm3730里边的文件了,比SAMBA好用。
本人喜欢使用root登录:
图-5-1 root帐号登录
3、SMABA的设置使用以下命令:
#apt-get install samba
#apt-get install smbfs
#apt-get install samba-common-bin
#apt-get install system-config-samba
 
系统自动从 Ubuntu的官方镜像网站下载稳定的最新的软件包版本,大家可以通过#gedit /etc/apt/sources.list命令看看这些链接的地址。
安装samba结束后,先使用
#touch /etc/samba/smbpasswd
#smbpasswd -a davinci  (davinci普通用户)
输入samba访问密码两次。
然后编辑gedit /etc/samba/smb.conf的配置文件,在smb.conf最后增加下面一段内容:
[smb_share]
;comment = Shared Folder with username and password
path = /home/davinci
public = yes
writable = yes
valid users = davinci
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup
available = yes
browseable = yes
保存退出。
重启samba,/etc/init.d/smbd restart(已经和以前的/etc/init.d/samba不一样了)
使samba生效。
最后使用:
# ufw disable
把防火墙给关闭掉,这样在WINDOWS下就可以使用\\192.168.1.xxx 登录samba共享目录了。对于从WINDOWS 拷贝文件进SAMBA文件夹有时会碰到读写操作的权限问题,我们只需在Ubuntu里:
文件夹的操作:chmod –R 777 xxxxx
文件的操作:chmod 777 wwwww
这样就可以了。
Samba只是一个辅助的工具,就是在WINDOWS下可以操作虚拟机的文件夹读写等等操作。
 
4、安装其他有用的linux host开发环境包
在HOST 使用DHCP的状态下(可以在Ubuntu10里上网),安装一些有用的开发包,比如在ubuntu10.04上开发Android用到的JAVA jdk1.6.0_43和其他的:
apt-get install bison
apt-get install zlib1g-dev
apt-get install flex
apt-get install g++-multilib
apt-get install libncurses-dev
apt-get install libx11-dev
apt-get install gperf
等等,这些在以后的Android移植的文章会详细描述到,这里先不累赘。
 
第三、   安装DM3730 DVSDK_04_03开发包
下面我们着重看图进行安装,用图片来演示相关的操作命令更直观。
图-6 dvsdk_04_3开发包放在共享目录 
    见图-6,在TI的网站上注册一个帐号,my.TI Account,如果有以前注册有就不需要注册了,进入http://www.ti.com/tool/linuxdvsdk-dm37x下,从TI网站下载到的dvsdk_dm3730-evm_04_03_00_06_setuplinux开发包,免费的,并把该文件放到刚才提到的共享文件夹里边,
图-7 建立dm3730 dvsdk4_03的目录
 
    开始按图-7上面提示的命令进行操作,我们先在/home/davinci/下建立dm3730的目录,然后再dm3730的目录里边再建立dvsdk4_03的简短目录,不要用长长的名字,烦。
图-8 运行dvsdk_dm3730-evm_04_03_00_06_setuplinux
 
进入共享文件夹的目录cd /mnt/hgfs/dm3730,先使用chmod +x dvsdk_dm3730-evm_04_03_00_06_setuplinux改变这个文件的使用权限,然后运行这个安装包。 

图-9 dvsdk4_03的安装开始界面
 
这时自动进入图形安装界面,修改安装到LINUX HOST里指定的路径,千万不要按图-9默认指定的路径,

图-10
应该按图-10指定的路径,然后按“Next”往下进行安装, 
图-11
图-11的元素全部选上, 
图-12
图-13
图-14
 
继续往下安装,这个从图-12到图-15整个过程有点长,因为这个开发包解压后很大。
图-15
到图-15表示安装结束,这时建议看看“View Softwate Developers Guide”更多了解整个DVSDK4_03的介绍。
图-16 dvsdk4_03的开发包元素
 
进入/home/davinci/dm3730/dvsdk4_03的目录ls一下,就可以看到这里有很多开发包元素,还有一个经典的setup.sh文件,先别急运行这个文件。
图-17
我们先按图-17在dvsdk4_03/filesystem里边建立一个dm3730rootfs的目录,到时候运行setup.sh需要解压TI EVM的文件系统dvsdk-dm37x-evm-rootfs.tar.gz到里边,这个TI EVM的dvsdk-dm37x-evm-rootfs.tar.gz文件很大,不适合我们嵌入式系统的文件系统,只有arago-base-tisdk-image-dm37x-evm.tar.gz适合,这个是TI EVM的简化版文件系统。
 
第四、   搭建TFTPNFS服务器
 
这里我们单独把TFTP和NFS SERVER的搭建单独来介绍,上面提到的dvsdk4_03/setup.sh,已经把这些安装命令和脚本写好了,不要像安装DM6446开发环境那么麻烦。
图-18 修改setup.sh脚本
在dvsdk4_03的目录下,使用gedit setup.sh &命令,对setup.sh进行编辑,我们按图-18进行屏蔽setup-minicom.sh,这个minicom是运行在LINUX HOST里边的串口调试工具,本人觉得不太好用,我们喜欢WINDOWS下的SecureCRT,这个SecureCRT串口工具非常好用。然后把setup-uboot-evn.sh也可以屏蔽掉,最后保存这个文件。
图-19 运行setup.sh脚本
直接按图-19运行,./setup.sh,
 
图-20 安装g++
 
自动安装g++的过程见图-20。
图-21 设置 NFS 文件系统路径
自动对linux HOST 的/etc/export文件进行设置,在export文件的后面,自动加有:
/home/davinci/dm3730/dvsdk4_03/filesystem/dm3730rootfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
的设置(注意dm3730rootfs和*之间有个空格)。
图-22 解压文件
输入“o”,表示强制要求把dvsdk-dm37x-evm-rootfs.tar.gz解压到filesystem/dm3730rootfs的目录里,刚才上面提到dvsdk-dm37x-evm-rootfs.tar.gz是TI EVM的文件系统,超级大,只适合调试,不适合烧写到NAND上面的嵌入式文件系统,所以我们接着在dvsdk4_03 /filesystem/的目录下,使用:
#mv dm3730rootfs ti_evm_rootfs
#mkdir –p dm3730rootfs
#tar zxf arago-base-tisdk-image-dm37x-evm.tar.gz –C dm3730rootfs
这个arago-base-tisdk-image-dm37x-evm的文件系统就是TI EVM dvsdk-dm37x-evm-rootfs.tar.gz的简化版本,本人对比了这里边的bin,sbin, lib, dev,  etc, usr/bin,usr/sbin, usr/lib等命令和LIB基本相同。
图-23
提示按回车键继续往下安装。
 
图-24 安装TFTP SERVER
图-25 安装结束
自动安装xinetd支持TFTP server,自动在HOST上生成/tftpboot的文件夹,以后在板子的uboot里,我们要烧写或者tftp boot 的bin文件、uImage等等都放到这里,比如本人编译出来自己命名的dm3730_xload.bin,dm3730_uboot.bin,dm3730_kernel.bin等等。
 
第五、   设置交叉编译环境
    在DM3730的开发包上,TI一共推出DVSDK4_00,4_02,4_03,其中只有最新的DVSDK4_03里边集成了交叉编译环境,以前在DM368的开发环境里这个arm-2009q1-203是单独安装的。其实这个dvsdk4_03里边的交叉编译工具linux-devkit就是arm-2009q1-203类似的版本。现在DVSDK4_03里安装后交叉编译工具放在linux-devkit里。
#cd /root
#gedit .bashrc &
在文件的最后面加上:
export PATH=/home/davinci/dm3730/dvsdk4_03/linux-devkit/bin:$PATH
保存文件,退出,然后重新登录root或者reboot重启虚拟机都可以,
 
下面是Rules.make里边的内容:
# Define target platform.
PLATFORM=dm3730
 
# The installation directory of the SDK.
DVSDK_INSTALL_DIR=/home/davinci/dm3730/dvsdk4_03
 
# For backwards compatibility
DVEVM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)
 
# Where DSP/BIOS is installed.
BIOS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dspbios_5_41_03_17
 
# Where the DSPBIOS Utils package is installed.
BIOSUTILS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/biosutils_1_02_02
 
# Where the Codec Engine package is installed.
CE_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/codec-engine_2_26_02_11
 
# Where the DSP Link package is installed.
LINK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dsplink_1_65_01_05_eng
 
# Where the codecs are installed.
CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/codecs-omap3530_4_02_00_00
 
# Where DMAI package is installed.
DMAI_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dmai_2_20_00_15
 
# Where the SDK demos are installed
DEMO_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dvsdk-demos_4_02_00_01
 
# Where the DVTB package is installed.
DVTB_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dvtb_4_20_18
 
# Where the EDMA3 LLD package is installed.
EDMA3_LLD_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/edma3lld_01_11_02_05
EDMA3LLD_INSTALL_DIR=$(EDMA3_LLD_INSTALL_DIR)
 
# Where the Framework Components package is installed.
FC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/framework-components_2_26_00_01
 
# Where the MFC Linux Utils package is installed.
LINUXUTILS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/linuxutils_2_26_02_05
CMEM_INSTALL_DIR=$(LINUXUTILS_INSTALL_DIR)
 
# Where the XDAIS package is installed.
XDAIS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdais_6_26_01_03
 
# Where the RTSC tools package is installed.
XDC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdctools_3_16_03_36
 
# Where the Code Gen is installed.
CODEGEN_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/cgt6x_6_1_14
 
# Where the PSP is installed.
PSP_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/psp
 
# The directory that points to your kernel source directory.
LINUXKERNEL_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/psp/linux-2.6.32
KERNEL_INSTALL_DIR=$(LINUXKERNEL_INSTALL_DIR)
(这个内核路径是我们改过的,我们不用linux-2.6.37,这个路径很重要,编译DVSDK的元素需要先编译内核!在DM6446平台很多客户不认真看我们手册就直接编译DVSDK是悲剧的!)
# Where the local power manager is installed.
LPM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/local-power-manager_1_24_03_10_eng
 
# Where the development headers and libs are installed.
LINUXLIBS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/linux-devkit/arm-arago-linux-gnueabi/usr
 
# Where c6accel package is installed.
C6ACCEL_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/c6accel_1_01_00_07
 
# Where c6run package is installed.
C6RUN_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/c6run_0_98_03_03
 
# Where opengl graphics package is installed.
GRAPHICS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/graphics-sdk_4.03.00.02
 
# The prefix to be added before the GNU compiler tools (optionally including # path), i.e. "arm_v5t_le-" or "/opt/bin/arm_v5t_le-".
CSTOOL_DIR=/home/davinci/dm3730/dvsdk4_03/linux-devkit
CSTOOL_PREFIX=$(CSTOOL_DIR)/bin/arm-arago-linux-gnueabi-
CSTOOL_PATH=$(CSTOOL_DIR)/bin
 
MVTOOL_DIR=$(CSTOOL_DIR)
MVTOOL_PREFIX=$(CSTOOL_PREFIX)
 
# Where to copy the resulting executables
EXEC_DIR=/home/davinci/dm3730/dvsdk4_03/filesystem/dm3730rootfs/opt/dvsdk
(这个DVSDK编译出来的一些.ko文件,使用make xxxx_install后会copy到这个文件系统的路径)
这个Rules.make脚本很重要,整个开发环境和这里边定义的变量和定义有关,从上面我们可以学习到整个DM3730 DVSDK的东西,当然这个还不包括Android开发包rowboat-android-froyo-omap3evm等,不一定所有的DM3730产品开发需要Android,有些做监控和视频分析的产品可以直接使用LINUX和DVSDK就OK了。当然如何接LCD屏那就需要Android或QT了。
 
Makefile里边的内容:
……………………
       @echo "  cmem                       : Build the CMEM kernel module"
       @echo "  cmem_clean                 : Remove generated cmem files."
       @echo "  cmem_install               : Install cmemk module"
………………….
       @echo "  linux                      : Build Linux kernel uImage and module"
       @echo "  linux_config               : Launch Linux kernel menuconfig"
       @echo "  linux_clean                : Remove generated Linux kernel files"
       @echo "  linux_install              : Install kernel binary and  modules"
       @echo
       @echo "  xload                      : Build the xload boot loader"
       @echo "  xload_clean                : Remove generated xload files"
       @echo "  xload_install              : Install the xload image"
       @echo
       @echo "  u-boot                     : Build the u-boot boot loader"
       @echo "  u-boot_clean               : Remove generated u-boot files"
       @echo "  u-boot_install             : Install the u-boot image"
………………………………
这个总的Makefile教会大家如何编译整个DVSDK4_03的元素,需要好好研究的东西。或者我们直接在/home/davinci/dm3730/dvsdk4_03/的目录下直接:
#make xload_clean
#make xload
进行xload的编译,验证整个交叉编译环境是否OK;还有:
#make u-boot _clean
#make u-boot
看看编译默认的dm3730 evm的u-boot是否通过;
以后单独写DVSDK移植文章的时候再详细描述这些DVSDK元素,这里我们只需要验证交叉编译环境的正确性。
 
第六、   如何决解Ubuntu10虚拟机vmdk文件越来越大,硬盘空间变小的问题
如果上面的make没什么错误提示,基本整个开发环境搭建好了。但是我们发觉虚拟机的文件xxxxx.vmdk很大,因为在安装的时候和编译程序的时候,这个产生的临时文件会使ubuntu的虚拟机分配的硬盘空间变小,而Ubuntu10.04使用的是ext4文件系统,所以硬盘空间没有释放,有些客户分配很小的硬盘空间比如20G,很快就用没了,结果到后面系统运行和编译程序的时候就出问题,我们现在使用HOST里 /usr/bin/vmware-toolbox或/usr/bin/vmware-toolbox-cmd的工具进行虚拟机空间压缩,这个vmware-toolbox出现在这里前,我们必须先安装Vmware Tools,这个Vmware Tools前面已经提示如何安装的,比如你安装的时候默认回车选择安装在/usr/bin/这个路径,然后我们在/usr/bin/目录下直接运行:
#vmware-toolbox
这时出现
图-26 vmware-toolbox压缩虚拟机硬盘的界面
我们选中整个根目录“/”进行对HOST空间压缩,过程是先分析,然后点击确认执行压缩,这个过程花较长的时间,压缩结束后会提示。
或者使用:
#vmware-toolbox-cmd disk shrink /
命令来直接对虚拟磁盘进行压缩,注意最后的 / 不要漏了,它是用来指明根文件系统的。这个过程也比较长,结束后,你会发觉你在WINDOWS下的xxxxx.vmdk变小了,我们开发编程一段时间就使用上面的方法压缩一下,同时整个虚拟机备份到其他硬盘空间或者移动盘,保护自己里边的开发成果,养成良好的备份习惯。
其实网上还有另外一种WINDOWS下的操作方法,如果你的虚拟机安装在C:\Program Files\VMware\VMware Workstation,而Ubuntu10.04虚拟机安装在D:\Ubuntu10,我们按下面的方法 :
首先用root登录进入Ubuntu的系统,
1、#apt-get install clean(有人写apt-get clean,不知是否正确)
2、#dd if=/dev/zero of=/0bits bs=20971520
3、#rm /0bits  (注意是数字的“0”)
4、halt停止虚拟机(关机);
5、使用WINDOW的DOS命令界面“运行”,输入cmd进入DOS命令界面;
6、cd C:\Program Files\VMware\VMware Workstation
7、vmware-vdiskmanager.exe -k D:\Ubuntu10\Ubuntu10.vmdk
上面做完后,你在看看你的xxxxx.vmdk会变小很多。
 
第七、   总结
总的来说,按照上面提示的方法,我们基本上搭建好DM3730的开发环境,当然开发过程中需要一些HOST的Ubuntu安装包,我们在联网的情况下,直接apt-get install xxx就OK了,总之DM3730比DM6446,DM642,DM3730等等强大多了,使用的linux内核版本2.6.32或者2.6.37,可以做很多工作和产品。下面介绍一下我们新搞的开发方案板子,让大家更加了解这个DM3730的特性,这样才会知道这个芯片方案的优点,知道如何设计好自己的低功耗嵌入式产品。
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    构建DM3730嵌入式linux开发环…
    构建DM3730嵌入式linux开发环…
    TI多媒体高性能处理器omap,a…
    repo下载TI ICS4.0.3源码,小…
    DM3730 qt和tslib 移植记录
    DM3730触摸屏校验
    移植Android GingerBread 2.…
    DM3730 Camera 接口调试笔记
    DM3730 DSPLink在Linux下的环…
    DM3730 message
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61 湘ICP备13001086号-2