DM8168开发手册DM8168开发手册
1.硬件设备
1.1 板卡
TI提供的关于DM8168的板卡共4块,其中包括1块母板:TMDXEVM8168,3块子板分别是Expansion I/O Daughter Card(EIO)、Video Conferencing Daughter Card(TMDXVCDC8168)以及Video Security Daughter Card(TMDXVSDC8168)。本文档的所有操作都是在TMDXEVM8168 + EIO下进行的。
1.2 视频信号源
在平常的开发中常用到的高清视频源有以下3种:高清摄...
DM8168开发手册
1.硬件设备
1.1 板卡
TI提供的关于DM8168的板卡共4块,其中包括1块母板:TMDXEVM8168,3块子板分别是Expansion I/O Daughter Card(EIO)、Video Conferencing Daughter Card(TMDXVCDC8168)以及Video Security Daughter Card(TMDXVSDC8168)。本文档的所有操作都是在TMDXEVM8168 + EIO下进行的。
1.2 视频信号源
在平常的开发中常用到的高清视频源有以下3种:高清摄像头、视频播放器和索尼高清DV。这些视频源各有特点。
1.2.1 高清摄像头
以明日摄像头为例,其设置如下(按配置调档):
高清摄像头作为视频源,可以更加真实地模拟实际产品的视频质量,可以获取真实的场景,可以很清楚地看到噪声以及光线明暗对于视频质量的影响。实验中首选摄像头作为视频源。
1.2.2 视频播放器
采用HDMAX H1073C视频播放器作为视频源可以更好地选择各种不同的视频场景,譬如色彩鲜艳的、场景相对静止的、场景运动激烈的等。通过这些不同的场景可以测试编码器的能力。在编码器参数设置的实验中使用视频播放器作为视频源会比较便捷。
1.2.3 索尼高清DV(SONY HDR-CX550E,XR550E)
索尼高清DV也是一种高清摄像头,但它的直接分量采集输入最大只能提供1080i50,不能提供1080p;当由HDMI采集输出并通过分量转换器可以提供最高1080p50的视频输出,不能达到1080p60。1080P50的视频用1080P60的标准去采集,并立刻显示会发现视频往左(面向显示屏时,人的左边)偏移,而且视频的右边(面向显示屏时,人的右边)有很宽的黑边。即采用索尼高清DV作为视频源时会有较大的失真,但由于它自带滤波功能,其视频输出质量稍好。
1.3 分量转换器
由于该平台只有分量形式的视频输入,因此需要把视频源的HDMI信号转换为YPbPr信号,使用分量转换器HDfuryPro。
1.4 显示器
该平台的输出信号可以是YPbPr信号也可以是HDMI信号,比较常用的是HDMI信号,使用带HDMI接口的显示器SAMSUNG BX2250
1.5 注意事项
1、DM8168+EIO(Expansion I/O Daughtercard)板卡的视频输入只支持子板上的YPbPr分量输入,其余如CVBS,HDMI,S-Video,DVI输入均不支持。视频输入均在子板上。
2、DM8168+EIO板卡的分量YPbPr输入只支持1080P60,720P60,1080i60和1080P30格式(目前只验证了1080p60)。
3、DM8168若要支持HDMI视频输入,需换专用于视频的子板VC(Video Conference Daughtercard)。
4、DM8168+EIO板卡只支持单路视频采集输入,DM8168+VC板卡才支持多路视频。
5、我们的SONY DV分量输出只支持1080i/576i,不支持1080p/720p;不过HDMI输出可以支持1080p。故需要一个HDMI到分量模式的转换器。
2.设备连接
先了解一下该平台的接口分布,如下图2.1所示
图2.1 接口分布
需要注意的是
1、开发用串口需要一条母对母的串口线与PC机上的串口卡相连;
2、PCIe插槽具有两个通道,可以作为RC使用。当作为EP使用时需要一条公对公的PCIe*2的连接线,并需要去除PCIe的时钟芯片,详细参考TI技术文档《DM816x_AM389x_PCI_Express_Endpoint_Boot_Driver_User_Guide》、《DM816x_AM389x_PCI_Express_Root_Complex_Driver_User_Guide》以及《DM816x C6A816x AM389x PCIe Clocking Schemes》 。
图2.2 视频接口分布图
其中VIN口均为YPbPr输入,VOUT1口为YPbPr输出,VOUT0口为HDMI输出。
图2.3 分量转换器正面
本文档把分量转换器的这一面定义为正面,如图2.3所示。红圈中为三分量YPbPr接口,需要一条三分量线和板上VIN0相接,注意具体的线序,这里没有特别规定哪种颜色需要接哪个口,只需要确保和板上一一对应就可以了。
图2.4 分量转换器背面
本文档把分量转换器的这一面定义为背面,如图2.4所示。图中通道选择开关必须要和HDMI通道一致,即HDMI接Input1,通道选择开关拨向H1一侧。注意转换格式开关要拨向Ypbpr一侧。
3.开发软件准备
3.1 开发环境的搭建
SDK需要在ubuntu-10.04的环境下进行编译,因此开发只能在ubuntu-10.04的系统下进行调试。由于大部分电脑的常用系统是windows,因此需要安装虚拟机,并在虚拟机上安装ubuntu-10.04系统。
本文所使用的虚拟机是VMware Workstation v8,安装的ubuntu系统是ubuntu-10.04.4-dvd-i386。
3.1.1 配置新的虚拟机
如下图点击“New Virtual Machine”。
注意要选择红圈中的选项,如果选择第二项的话,会只有命令行界面。
3.1.2 安装ubuntu
进入安装ubuntu界面后,按要求配置时间、键盘、用户名等7个步骤后等待安装完成。
首先是选择安装操作系统的语言种类,就选择English吧,点Install Ubuntu 10.04 LTS 继续。
然后是选择时间。
然后是选择键盘布局,就按默认的USA。
然后是配置硬盘了,上面一个是默认的配置方式,下面的是手动指定配置方式。选择手动指定配置,继续就会进入手动配置硬盘的界面,可以把虚拟出来的内存分成一个linux的文件系统盘和一个交换区。也可以选择默认的配置,为了方便就选择默认的配置。
然后是配置计算机名,用户名和密码。
然后根据向导继续,开始安装操作系统了。
安装过程可能会花费一段时间,耐心的等待几分钟,安装完成之后提示重启计算机,选择立即重启就可以了。
3.1.3 安装vmtools
注意:以下linux命令行均以ubuntu非超级用户为准,在很多操作中非超级用户都会出现权限不够的提示,所以需要使用sudo来提升操作权限 。
ubuntu 安装好了之后,你会发现桌面分辨率只有800 * 600的,不能调整,这个时候,安装VMware tools可以帮你解决这个问题,而且安装VMware tools还可以让虚拟机里面的linux可以挂在宿主计算机的硬盘。
点击菜单->VM->Install VMware Tools或者如下图所示点击“Install Tools” 来安装VMware tools。
点击了Install VMware Tools之后,虚拟机会将VMware Tools的安装包挂在到linux操作系统里面的/media/VMware Tools目录下面。桌面上会出现一个光盘。
Applications ->Accessories->Terminal打开终端准备安装VMware Tools,复制VMware tools安装包到自己的目录下面。
host$ cd home
host$ sudo mkdir vmtools
host$ cd vmtools
host$ sudo cp /media/VMware\ Tools/VMwareTools-8.1.3-203739.tar.gz ./
解压安装包
host$ sudo tar zxvf VMwareTools-8.1.3-203739.tar.gz
安装包会解压在当前目录的vmware-tools-distrib文件夹下面。
host$ cd vmware-tools-distrib
查看文件列
会发现里面有个vmware-install.pl的文件
host$ ls
运行此文件安装vmware tools
host$ sudo ./ vmware-install.pl
然后会有一系列安装目录参数问题,直接按回车确认默认路径即可,
中间碰到的问题,全部都直接回车确认默认
即可,等待安装完成。
重启ubuntu。
host$ sudo reboot
重启完成后可以通过System->Preference->Monitor来设置屏幕的分辨率。而且还可以现实虚拟机共享宿主计算机文件系统,其操作如下:
在虚拟机配置界面选择Options,双击share folders,选择always enable。
点击add添加共享文件,按照向导,点下一步,在选择主机文件的时候选择一个文件夹。
确定,按照向导继续,完成,就能在共享文件列表里面看到新增加的共享文件了,根据自己的需要,按照同样的办法添加其他的共享文件。启动虚拟机,就能在/mnt/hgfs目录下看到所有的共享文件夹了。
host$ cd /mnt/hgfs
host$ ls
注意先修改/home的读写权限,以免后面操作没有权限
host$ sudo chmod 777 /home
3.1.4 安装交叉编译链arm-none-linux-gnueabi-gcc
假定arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2在共享文件夹中,把它从/mnt/hgfs/shared/路径下拷贝到/home/路径下。
host$ sudo cp /mnt/hgfs/shared/ arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /home
在当前路径下解压
host$ sudo tar jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
3.1.5 安装EZSDK
假定ezsdk_dm816x-evm_5_03_01_15_setuplinux在共享文件夹中,把它从/mnt/hgfs/shared/路径下拷贝到/home/路径下。
host$ sudo cp /mnt/hgfs/shared/ezsdk_dm816x-evm_5_03_01_15_setuplinux /home
然后安装
host$ ./ ezsdk_dm816x-evm_5_03_01_15_setuplinux
在弹出的对话框中,按照其提示执行以下命令:
host$ sudo rm /bin/sh
host$ sudo ln -s /bin/bash /bin/sh
然后再安装
host$ ./ ezsdk_dm816x-evm_5_03_01_15_setuplinux
指定交叉编译链arm-none-linux-gnueabi-gcc所在的路径:
指定路径正确则弹出如下对话框:
确定后如下所示:
指定EZSDK的安装路径如下所示:
正在安装,等待数分钟。
3.2终端仿真程序软件的配置
串口终端控制软件SecureCRT,通过控制台操作移植的linux系统及调试和运行应用程序。
串口设置如下图3.1所示,注意红圈中的选择。
图3.1串口设置
4.应用程序编译
打开终端,首先设置环境变量:
host$ export EZSDK=’ ti-ezsdk_dm816x-evm_5_03_01_15’
进入EZSDK所在目录下/opt/ ti-ezsdk_dm816x-evm_5_03_01_15进行编译:
host$ cd /opt/ ti-ezsdk_dm816x-evm_5_03_01_15
host$ make components
等待编译,需要数分钟。在以下路径下可以找到omx的组件源码生成的可执行文件*.xv5T文件。
/opt/ ti-ezsdk_dm816x-evm_5_03_01_15/component-sources/omx_05_02_00_30/bin
host$ make omtb
等待编译,需要数分钟。在以下路径下可以找到omtb_dm81xxbm_a8host.xv5T文件。该文件用于解析omtb脚本文件。
/opt/ti-ezsdk_dm816x-evm_5_03_01_15/example-applications/omtb_01_00_01_07/bin
5.调试
连接好各种设备后就可以上电。(有一点需要注意的是串口线的插拔最好断电进行,因为串口是非热插拔器件,带电插拔容易烧串口。)
上电后打开串口终端控制软件SecureCRT,可以看到系统打印的信息,并最终停留在登录界面,如下图所示。
输入dm816x-evm的登录密码,密码为root
dm816x-evm login: root
开始调试前,需要关闭gui界面才能看到显示的视频
target$ /etc/init.d/matrix-gui-e stop
target$ echo 0 > /sys/devices/platform/vpss/graphics0/enabled
如果需要改变播放显示的分辨率,按下列步骤操作(以设置1080p-60为例)
target$ echo 0 > /sys/devices/platform/vpss/display0/enabled
target$ echo 1080p-60 > /sys/devices/platform/vpss/display0/mode
target$ echo 1 > /sys/devices/platform/vpss/display0/enabled
查看播放显示的分辨率设置模式
target$ cat /sys/devices/platform/vpss/display0/mode
调试有两种方式,一种是使用OMX的应用程序调试;另一种是使用OMTB脚本进行调试。使用OMX方式调试方便自定义变量及修改参数设置,但编译时间较长,调试不太方便。使用OMTB脚本方式调试只需要修改脚本,然后就而已立刻运行,不需要等待编译的时间,调试方便,但不能自定义参数,而且不清楚哪些参数可以被解析,所以修改参数比较麻烦。在实际应用中要根据具体情况选用调试方式。
5.1 OMX调试方式
进入到omx的目录下
target$ cd /usr/share/ti/ti-omx
然后把编译好的应用程序*.xv5T、编码所需要的YUV文件和解码所需要的.264文件用u盘拷到该目录下,然后按各种应用程序的参数运行就可以了。注意用来编码的YUV文件必须是YUV420SP格式,对于非YUV420P格式的文件,需通过程序转换。“*”表示需要拷贝的文件,如encode_a8host_debug.xv5T。
target$ cp /media/sda/encode_a8host_debug.xv5T ./
提示:各种应用程序的参数可以通过-help参数来获得。例如:
target$ ./encode_a8host_debug.xv5T –help
5.1.1 OMX方式调试File -> Encode实验
target$ ./encode_a8host_debug.xv5T -o foreman_cif.h264 -i foreman_cif_420SP.yuv -f 60 -b 1000000 -w 352 -h 288 -c h264 &
encode_a8host_debug.xv5T
-o | --output output filename
-i | --input input filename
-f | --framerate encode frame rate
-b | --bitrate encode bit rate
-w | --width encode width
-h | --height encode height
-c | --codec h264, mpeg4, h263
example - ./encode_a8host_debug.xv5T -o sample.h264 -i sample.yuv -f 60 -b 1000000 -w 1920 -h 1080 -c h264
5.1.2 OMX方式调试Capture -> Encode实验
target$ ./capture_encode_a8host_debug.xv5T -o sample.264 -m 1080p -f 60 -b 2000000 -n 1000 -d 0 &
./capture_encode_a8host_debug.xv5T: invalid option -- 'h'
capture_encode -f
-m -b -o -n -d <0/1>
-o | --output output filename
-m | --mode 1080p / 720p capture/On-chip HDMI display mode
-f | --framerate encode frame rate
-b | --bitrate encode bit rate
-n | --numframes encode number of frames
-d | --display_id 0 - for on-chip HDMI, 1 for Secondary display
example - ./capture_encode_a8host_debug.xv5T -o sample.h264 -m 1080p -f 60 -b 1000000 -d 0 -n 1000
for 720p, set hdmi mode before running example
echo 720p-60 >/sys/devices/platform/vpss/display0/mode
5.1.3 OMX方式调试Decode -> File实验
target$ ./decode _a8host_debug.xv5T -w 1920 -h 1080 -i dm816x_1080p_demo.264 -o out.yuv -c h264 &
注意:因为1080p解码的yuv文件数据庞大,而板卡内存容量不够,因此板上至多只能解码保存1G以内的yuv数据,至多大概250帧,否则导致系统崩溃。
decode -w -h -i -o
本文档为【DM8168开发手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。