关于我们
技术分享
技术分享
DAVINCI DM365-DM368开发攻略——开发环境搭建
DAVINCI DM365-DM368开发攻略——开发环境搭建
2020-08-20
第一节、 技术开发环境中的社会环境
这篇文章迟迟没有写出来奉献给一些爱好音频视频开发的网友,是有很多原因的,TI在短时间内,针对高清音视频方案DM365/368,连续发布DVSDK3.0,DVSDK4.00,DVSDK4.01和DVSDK4.02,这点让我们很不适应。虽然我们的DM365/368核心板早已经出来,但是需要做开发板,并调试开发板,还有就是帮三个客户批量生产DM6446产品和产品维护的原因,这是主要原因。但还有三个严重影响士气的原因,让本人管理公司倍感压力,就是这个夏天不好过,全国处处都流行市区里看海,严重影响公司员工的工作专注性,这是其一;全国各地人民近一年连续性和惯性地“喜迎物价上涨”,这个严重影响员工的积极性,更让我们物料采购和生产压力逐步加大,这是其二;其三就是我们血液流淌的民族良心、热心和爱心被无情欺骗、玩弄、践踏,而且这些事情还要继续掩盖和描黑下去,我想大家都知道的。压力很大,再大也要坚持下去;再忙,也还得坚持把博客写好。话说得好:从来没有救世主,全靠我们自己。这句话一点也不言重,以后会明白的。
针对技术开发环境,我们分六部分进行描述:
DM365/368介绍;
下载相关软件包;
Ubuntu 10.04 LTS环境搭建;
Ubuntu网络环境静态IP的设置和SMABA的设置;
交叉编译环境搭建;
DVSDK4_02_00_06软件开发包的安装;
第二节、 DM365/368介绍
MPEG4、MPEG2、MJPEG、JPEG,音频的ACC、G711编码解码都是硬件实现的,无需软件运算,编码解码速度极快。但DM36X里边没有DSP,不能拿来做智能视频算法和机器视觉算法,DM36X方案适合做IP-CAMERA、高清DVR、无线IP-CAMERA、智能家居低成本产品,等等。市场上还有一个非常流行更经济的台湾智源和华为海思嵌入式高清IP-CAMERA、DVR方案(注,本人是中立嵌入式爱好者),但DM36X可扩展的功能比华为海思嵌入式芯片Hi系列强,,压缩率比海思和台湾智源高,华为海思嵌入式芯片Hi更专注DVR方面的产品设计。这些SoC都是面对低端市场,讲究量的出货,做不了高端产品,只有带DSP的芯片才能做中高端产品。像本公司的DM6446、DM6437,和以后的DM8168等。
TI最开始发布的DM36X开发包是dvsdk_dm365_setuplinux_2_10_01_18,这个版本还有很多公司在用,这个是基于linux-2.6.18内核上开发的,TI觉得Montavista做的linux驱动太烂,决定自己搞,所以发布很多linux的版本,现在最新发布的版本是linux-2.6.37。上篇写到《RHEL6.0的开发环境》,主要针对去年发布的DVSDK3.0开发包的,DVSDK3.0里边包含DM36X和DM6467T三个高清方案芯片的开发包,内核基于linux-2.6.32,但是TI在今年连续发布DVSDK4.00,DVSDK4.01和DVSDK4.02,内核均是linux-2.6.32,同时把DM365和DM368分开了,说明在软件上DM365(720P)和DM368(1080P)区别还是比较大的,两个芯片在硬件管脚完全兼容,就是主频率(DM365最高297MHz,DM368为432MHz)和视频子处理系统不一样,DM368还包含“智能成像应用的脸部识别”,所以我们决定开发DVSDK4.02。因为全世界很多流行的软件都基于linux-2.6.32,比如RHEL6.0,Ubuntu 10.04,众多开发板公司,等稳定版本,加上现在比较流行的Android(安卓)系统,要求linux的版本最好是linux-2.6.32以上。
要开发DVSDK4.02或者(DVSDK4.00,DVSDK4.01),TI要求必须在Ubuntu 10.04 LTS 32-bit系统上开发,不能在RHEL6.0上开发,这个和DVSD3.0有区别的。
第三节、 下载相关软件包
1、下载Ubuntu 10.04 LTS 32-bit
下载得到ubuntu-10.04.2-desktop-i386.iso,而且版本一定是ubuntu-10.04,不要下载更高级的版本。和RHEL6.0不一样,这个是完全免费和无版权纠缠问题的linux系统,而且这个和debian系统一样,非常好用,非常方便更新软件包,安装后,文件总体大小也小多了。
2、下载ARM交叉编译工具Code Sourcery ARM GCC Tool Chain
“Sourcery G++ Lite 2009q1-203 for ARM GNU/Linux”,比较流行和高效的ARM交叉编译工具,选择下载IA32 GNU/Linux Installer;
3、下载DVSDK_4_02包:
分DM365和DM368,、
选择“另存为”,并加.bin后缀,否则你下载的是txt格式的文件;
选择“另存为”,并加.bin后缀;
下载完上面的开发包和文件后,先看看TMS320DM365_EVM_Quick_Start_Guide.pdf或者TMS320DM368_EVM_Quick_Start_Guide.pdf。
第四节、 Ubuntu 10.04 LTS环境搭建
和RHEL6.0的安装一样,我们选择虚拟机软件VM7.1,我们以按图说话,一步一步安装下去,熟悉这方面的朋友可以跳过本节的描述,当然给本人指出错误挑毛病更让本人喜欢。不熟悉的朋友可以先先看看《DAVINCI DM36X开发攻略——RHEL6在VM7.1的安装》。
首先VM7.1已经安装后,并且VM7.1和WINDOWS的网络共享设置按照下图:
要在自己电脑上找到一个有至少有20G的空余的空间,确保自己的PC有2G的内存以上,WINDOWS自己占用1G,分配给虚拟机的内存是1G以上,这样在Ubuntu里编译和开发就非常有效率。
VM-LINUX 图-1
选择Ubuntu,“Next”下去;
VM-LINUX 图-2
VM-LINUX 图-3
在图-3里,也有人选择使用“Use NAT”,但是我们用第一种的方式也可以在Ubuntu系统里上网。
VM-LINUX 图-4
选择虚拟机I/O类型,
VM-LINUX 图-5
由于第一次在你的PC安装Ubuntu,我们选择第一个选项,产生一个新虚拟硬盘,VM把整个linux host的系统保存到一个文件(新虚拟硬盘)里,非常安全和容易备份保存,这也是本人喜欢VM的原因。
VM-LINUX 图-6
VM-LINUX 图-6里,选择虚拟硬盘的类型,我们建议使用IDE,有时选择“SCSI”会使后面的安装出问题,本人没时间去研究这个问题,所以直接用IDE。
VM-LINUX 图-7
分配给Ubuntu host系统的虚拟硬盘空间是20G,够用了,因为后面安装完交叉编译工具、相关Ubuntu升级包、DVSDK4.02等软件包后,才7.x 多G的文件,够开发用了,这个虚拟硬盘会随开发安装更多的软件包变得越来越大。
VM-LINUX 图-8
VM-LINUX 图-9
图-8和图-9就是通过镜像方式安装Ubuntu,在虚拟机的光驱里,按图-9的选项找到你下载的ubuntu-10.04.2-desktop-i386.iso,然后点击确定后,在虚拟机的界面的左边,启动刚才配置的虚拟机。这样就开始Ubuntu安装了。
U-install 图-10
这里选择Ubuntu host系统的语言,一般是英语,也可以使用简体中文。
U-install 图-11
最后选择图-27的“Enable this share”,点击finish,这样Ubuntu和windows就可以共享文件夹了,这样系统会自动mount这个共享文件夹到/mnt/hgfs/的目录下。COPY你下载的arm-2009q1-203-arm-none-linux-gnueabi.bin和dvsdk_dm365-evm_4_02_00_06_setuplinux.bin或者dvsdk_dm368-evm_4_02_00_06_setuplinux.bin到这个WINDOWS下的Ubuntu10文件夹里,然后在linux里边,使用以下命令,看看在LINUX里是否看到你COPY过来的文件:
#cd /mnt/hgfs/Ubuntu10/
#ls
这时应该可以看到刚才COPY的两个大文件。
到这里Ubuntu的环境基本搭建好,还有NFS, TFTP, SAMBA等,NFS和TFTP在后面安装好DVSDK4.02后,再告诉大家如何设置。
第五节、 Ubuntu网络环境静态IP的设置和SMABA的设置
由于Ubuntu的默认安装状态的IP是DHCP,而我们TFTP SERVER, NFS SERVER, SAMBA SERVER这些网络环境都要求是固定的静态IP模式,所以我们先设置静态IP,编辑/etc/network/interfaces的文件,
#gedit /etc/network/interfaces
在auto lo
iface lo inet loopback
的后面加上:
auto eth0
iface eth0 inet static
address 192.168.1.252
netmask 255.255.255.0
gateway 192.168.1.1
broadcast 192.168.1.255
然后保存退出,重启networking:
#/etc/init.d/networking restart
而有些网友指出改成静态IP上不了网,这时就需要设置DNS,这个就不提示了,网上有很多介绍,本人没发觉apt-get install xxxx过不去,所以本人的静态IP还是可以连上网的。本人还发觉有个BUG,每天打开Ubuntu如果不做/etc/init.d/networking restart的话,发觉还是使用DHCP,做了/etc/init.d/networking restart后,就变成静态IP,这个BUG一直没查到什么原因,这个和RHEL6.0的不一样,不知是否有Ubuntu高手指点一下。本人还有个小建议:为了上网方便,建议DHCP,调试开发的时候,直接使用:
ifconfig eth0 192.168.1.252,临时去指定IP就可以做相应的开发。
搞定静态IP和DNS,可以设置SAMBA了,使用以下命令:
#apt-get install samba
#apt-get install smbfs
#apt-get install samba-cmmon-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 = 0700
directory mask = 0700
force user = nobody
force group = nogroup
available = yes
browseable = yes
保存退出。
重启samba,/etc/init.d/smbd restart
这个和以前的(/etc/init.d/samba restart)不一样了。
使samba生效。
最后使用:
# ufw disable
把防火墙给关闭掉,这样在WINDOWS下就可以使用\\192.168.1.252 登录samba共享目录了。
第六节、 交叉编译环境搭建
Ubuntu网络环境搞定,我们可以着手安装GCC交叉编译环境,先使用:
#ln -sf /bin/bash /bin/sh
否则无法运行./arm-2009q1-203-arm-none-linux-gnueabi.bin的操作。网友指出是dash搞的鬼。
进到我们的VM TOOL共享目录:
#cd /mnt/hgfs/Ubuntu10
#chmod +x ./arm-2009q1-203-arm-none-linux-gnueabi.bin
#./arm-2009q1-203-arm-none-linux-gnueabi.bin
这时,会出现Sourcery G++的安装界面,
dvsdk 图-52
安装的过程中,提示你输入NFS的路径,本人的是:/home/davinci/dm365/dvsdk_dm365_4_02_00_06/filesystem/dm365rootfs。输入后,直接回车。因为在此之前,本人在安装完DVSDK后,自己先在/home/davinci/dm365/dvsdk_dm365_4_02_00_06/filesystem/目录下生产一个空的dm365rootfs文件夹,所以会出现U-install 图-53的提示,系统会问你这个/home/davinci/dm365/dvsdk_dm365_4_02_00_06/filesystem/路径下已经存在dm365rootfs的文件夹,
dvsdk 图-53
是否需要:
输入“r”表示重新命名,输入”o”表示覆盖dm365rootfs里边的内容,输入”s”表示跳过文件系统的文件解压,因为安装过程会把/home/davinci/dm365/dvsdk_dm365_4_02_00_06/filesystem下的dvsdk-dm365-evm-rootfs.tar.gz文件系统文件解压到dm365rootfs里。本人直接输入”o”。如果之前没有使用#mkdir dm365rootfs,那就不会有这样的提示,按照图-52输入完路径,直接回车就自动安装
最后,到/home/davinci/dm365/dvsdk_dm365_4_02_00_06/psp的目录下看看,这里有UBL(在flash-utils里),u-boot-2010.12-psp-xxxxxxx,linux-2.6.32.17-psp-xxxxxxx和linux-driver-examples的源码,这个U-BOOT和内核的源码文件夹太长,我们使用mv命令改为:u-boot-2010.12和linux-2.6.32.17。然后按图-55在/home/davinci/dm365/dvsdk_dm365_4_02_00_06目录下#gedit Rules.make文件,修改内核linux-2.6.32.17的路径,不要使用默认长长的文件夹路径;同时检查交叉编译工具的路径是否和你前面的安装路径对应。
CSTOOL_DIR=/opt/arm-2009q1-203
CSTOOL_PREFIX=$(CSTOOL_DIR)/bin/arm-none-linux-gnueabi-
保存退出后,编译DVSDK里边的元素之前,在/home/davinci/dm365/dvsdk_dm365_4_02_00_06的目录下,必须做如下命令,就是使交叉编译环境生效:
#source linux-devkit/environment-setup
基本大功告成。
检验交叉编译工具GCC是否好用:
在/home/davinci/dm365/dvsdk_dm365_4_02_00_06目录下:
#make u-boot_clean
#make-u-boot
看看u-boot是否可以编译过去。
如果按照上面的安装,基本没什么问题。
至于如何编译内核和u-boot等,请gedit /home/davinci/dm365/dvsdk_dm365_4_02_00_06目录下的Makefile文件看看。
第八节、 总结介绍
花了很长的时间调试本公司做的开发板,然后验证OK后,才敢写这篇文章,我们写技术博客都是很实在的,没必要假大空,也不是Ctrl+C和Ctrl+V搞出来的论文。
顺便晒晒我们做的核心板和开发板,目前硬件测试完毕,软件还没完善,有些驱动需要添加和改动。由于DM365/368采用0.65mm的BGA工艺,使PCB布板难度更大,风险更高,我们做核心板的任务就是尽量帮客户解决这些硬件和系统驱动的问题,让客户在短时间出产品抢市场,抢时间,降低开发风险和投资风险。核心板5片才开始卖,单独1~4片买来玩玩的朋友我们这种单子不敢接,建议先买开发板玩玩熟悉再说。因为卖了就得对客户负责,而我们没有这么庞大的技术支持队伍,所以我们一般和那些有诚意批量采购的客户合作,或者直接飞过来当面签订项目合同的客户合作。
DM365开发板
- 标签:
-
容灾备份
您可能感兴趣的新闻 换一批
热门文章
现在下载,可享30天免费试用