DM8148 Demo程序测试
Revision History Draft Date 2016/07/28 Revision No. V1.2 1.添加FAN测试 2.添加CAN测试 3.整合H.264编解码例程 4.添加ddr3读写速率测试 2016/04/07 V1.1 1.排版修改。 2.更新测试内容。 2015/12/31 V1.0 1.初始版本。 Description
目 录
1 2 3 4 5 6 7 8 9
开发板系统启动 .................................................................................................................. 3 拷贝文件到开发板方法 ...................................................................................................... 5 helloworld应用例程演示.................................................................................................... 6 LED测试 ............................................................................................................................... 7 按键测试 .............................................................................................................................. 9 串口启动测试 .................................................................................................................... 10 HDMI OUT测试.................................................................................................................. 10 运行Matrix用户界面程序 ............................................................................................... 11 网口测试 ............................................................................................................................ 11
10 LCD触摸屏校准和亮度调节 ............................................................................................. 15 11 SD卡测试 ........................................................................................................................... 16 12 SATA硬盘接口测试........................................................................................................... 17 13 DDR3读写速率测试 .......................................................................................................... 20 14 15 16
时钟设置 ...................................................................................................................... 21 系统信息查询 .............................................................................................................. 22 程序上电自动运行 ...................................................................................................... 25
17 FAN测试 ............................................................................................................................ 26 18 CAN测试 ............................................................................................................................ 26 19 1080p30 decode使用 ........................................................................................................ 29
LCD显示 ............................................................................................................................. 29 HDMI输出.......................................................................................................................... 29 20 GStreamer H.264编解码使用 ........................................................................................... 30
LCD显示 ............................................................................................................................. 30 HDMI输出.......................................................................................................................... 30
1 开发板系统启动
(1) 使用开发板UART0串口连接PC机。如实验无特别说明,默认都是使用UART0作
为调试串口。
(2) 打开并且配置串口调试终端\"SecureCRT 7.2\"。Protocol选择Serial,Port选择相应
COM口,波特率为115200b/s,其他参数默认不变,最后点击Connect连接。如下图所示:
图 1
备注:具体安装方法请查阅“软件安装教程”。COM口需要在“设备管理器->端口(COM和LPT)”处查看。
(3) 将开发板断电,拨码开关(5~1)对应拨动到01100,使用第一启动档位为Micro
SD(MMC0)。启动选择方式如下表所示:
注意:拨码开关ON=1,OFF=0。
表 1 SW2 BOOT BIT[5:1]
Nand-16 GPMC SPI0 MMC1 UART0 EMAC0
10010 10110 10111 00001 00100
(4) 接通电源,UART0串口会有以下的U-Boot、内核和文件系统的调试信息打印到终
端上。如下图所示:
图 2
(5) 启动完成,输入账号,进入系统。执行如下操作: 备注:初次启动需要校正屏幕。 Target#
root
图 3
2 拷贝文件到开发板方法
文件拷贝到开发板有如下几种方式:
(1) SD卡、U盘等存储介质拷贝方式; (2) NFS、TFTP等网络拷贝方式; (3) 串口拷贝方式;
通过SD卡拷贝文件到开发板的方法
下面以SD卡方式演示如何拷贝文件到开发板。将配套的SD系统启动卡插到PC机,
然后把需要拷贝到开发板的文件复制到SD卡的boot分区,如下图所示:
图 4
将SD卡插到开发板并启动系统,查看分区信息,SD卡的boot分区挂载在\"/media/mmcblk0p1\"目录下,执行如下命令查看:
Target# Target#
df
ls / media/mmcblk0p1
图 5
3 helloworld应用例程演示
源代码位于光盘\"demo\\app\\helloworld\"目录 程序可执行镜像:helloworld 程序源代码:helloworld.c
(1) 将光盘\"demo\\app\\helloworld\"下的镜像文件helloworld复制SD卡或者开发板文件
系统\"/home/root\"下。
(2) 在SD卡helloworld镜像文件的当前路径下运行helloworld可执行文件。例如执行
如下命令:
Target# Target#
cd /media/mmcblk0p1 ./helloworld
图 6
(3) 还可以选择直接输入路径,运行程序。执行如下代码: Target#
/media/mmcblk0p1# /media/mmcblk0p1/helloworld
图 7
(4) helloworld程序说明:
#include printf(\"Hello World!\\nThis is TL8148-EasyEVM\\nwww.tronlong.com\\n\"); return 0; //调用函数打印,给系统返回值 4 LED测试 图 8 TL8148-EasyEVM与GPIO对应 (1) 在\"sys/calss/leds\"目录有3个LED控制目录,对应关系如下: LED1(GPIO0[27]):user_led1 LED2(GPIO0[21]):user_led2 LED3(GPIO0[30]):user_led3 (2) 逐个点亮对应LED,执行如下命令: Target# Target# Target# Target# Target# Target# Target# modprobe tl8148evm-user-leds //加载驱动 echo 0 > /sys/class/leds/user_led1/brightness echo 1 > /sys/class/leds/user_led1/brightness echo 0 > /sys/class/leds/user_led2/brightness echo 1 > /sys/class/leds/user_led2/brightness echo 0 > /sys/class/leds/user_led3/brightness echo 1 > /sys/class/leds/user_led3/brightness //控制LED1灭 //控制LED1亮 //控制LED2灭 //控制LED2亮 //控制LED3灭 //控制LED3亮 图 9 (3) 流水灯点亮,LED测试脚本存放于光盘中,路径如下: led_loop.sh:\\demo\\app\\led\\led_loop.sh 将led_loop.sh复制到开发板的文件系统,启动开发板,进入脚本存放路径,循环点 亮相应的LED。在串口终端执行如下命令: Target# 图 10 ./led_loop.sh & //&表示以后台方式运行 按\"Ctrl+C\"终止运行测试脚本程序。 5 按键测试 开发板底板上有2个普通用户按键KEY0和KEY1,另外一个NMI是非屏蔽中断按键。 //测试程序镜像 //测试程序源码 button_test:demo\\app\\button\\button_test button_test.c:demo\\app\\button\\button_test.c (1) 将源码button_test.c复制到Ubuntu任意路径下,进入源码存放路径。 (2) 编译源码,执行如下命令: Target# arm-none-linux-gnueabi-gcc button_test.c -o button_test 图 11 (3) 将button_test复制到开发板的文件系统,启动开发板,进入脚本存放路径,测 试按键。在串口终端执行如下命令: Target# s.ko Target# ./ button_test insmod lib/modules/2.6.37/kernel/arch/arm/mach-omap2/tl8148evm-user-key 图 12 (4) 分别按下KEY0、KEY1,打印如下信息: 图 13 6 串口启动测试 (1) 开发板上启动方式选择为:UART0,拨码开关选择为:11010(5~1)。 (2) 打开串口终端(SecureCRT),连接UART0到计算机,然后接通电源,串口终端会打 印\"cccccccccc\"。如下图所示: 图 14 7 HDMI OUT测试 将开发板的HDMI out接口与带HDMI输入的显示屏连接,进入开发板系统,执行如 下命令进行切换HDMI显示matrix用户界面: Target# Target# cd /usr/share/ti/ti-media-controller-utils/ ./change_display.sh hdmi //如需切换lcd,则输入lcd 图 15 重启系统: Target# reboot 重新进入系统后,执行如下命令开启Matrix界面: Target# /etc/init.d/matrix-gui-e start 图 16 此时即可看到显示屏显示Matrx用户界面了。 8 运行Matrix用户界面程序 文件系统中有Matrix用户界面程序,启动脚本在开发板文件系统的路径为: matrix-gui-2.0:/etc/init.d/matrix-gui-e 执行以下命令运行Matrix Qt用户界面程序: /etc/init.d/matrix-gui-e stop //开发板已经设置上电自动执行此程序,先终止 /etc/init.d/matrix-gui-e start Target# Target# 运行程序后LCD会出现Matrix用户界面,执行以下命令终止运行Matrix用户界面程 序的运行: Target# /etc/init.d/matrix-gui-e stop 以上命令仅仅是暂时停止Matrix 用户界面程序的运行,系统重新启动后依然会自动 运行。若希望上电不要自动自行Matrix 用户界面程序,可以执行以下命令: Target# 图17 mv /etc/rc5.d/S99matrix-gui-e /etc/rc5.d/K99matrix-gui-e \"/etc/rc5.d\"目录下所有以S开头的脚本都会上电自动运行,改名为K开头后就不会上 电自动运行了。可在启动后执行前面的命令手动启动或关闭Matrix用户界面程序。 9 网口测试 (1) 硬件连接 通过网线将开发板网口连接到路由器,检查网口是否绿灯常亮、黄灯闪烁。若现象不 对,说明网口还没正常工作。 (2) 网络连通测试 进入开发板文件系统执行如下命令自动获取IP: cat /proc/net/dev Target# 图 18 Target# udhcpc -i eth3 节点根据上一步查看得到 图 19 udhcpc是一个自动获取IP的命令,可以看到分配后的地址是192.168.1.10,说明系 统的网络接口已经和路由器连通了,可以通过以下命令来ping网关。 Target# ping 192.168.1.1 图20 (3) 网络速度测试 在Ubuntu中使用网络测试软件iperf来测试网络速度。若未安装,可在Ubuntu中执 行\"sudo apt-get install iperf\"安装,如下图: 图21 在Ubuntu运行ifconfig命令查看Ubuntu的IP地址,如下图: 图22 在Ubuntu执行以下命令等待开发板连接: Host# iperf -s 图23 在开发板上运行以下命令测试网口速度: iperf -c 192.168.1.57 Target# 开发板提示的信息如下图: 图24 Ubuntu会同时显示测试结果,如下图: 图25 假如自行制作的文件系统没有安装iperf,可在开发板网络正常的情况下执行以下命 令安装iperf客户端: Target# 图26 opkg install iperf 10 LCD触摸屏校准和亮度调节 (1) 触摸屏校准 在执行触摸屏校准程序之前,请关闭所有界面程序。例如开发板上电自动运行的界面 程序是\"/etc/init.d/matrix-gui-e\",需要在开发板中执行\"/etc/init.d/matrix-gui-e stop\"命令,才能停止已执行的界面程序,如下图: 图27 执行\"ts_calibrate\"命令运行触摸屏校准程序,LCD会弹出校准界面,请依次点击校准 准星。连续点击五次之后,会在/etc目录下生成触摸屏校准文件pointercal,可以看到校准后的信息已经记录在pointercal文件里面。如下图所示: 图28 (2) LCD屏亮度调节 启动开发板后,执行以下命令调节LCD屏亮度,调节范围在0~250,默认值是250。 Target# echo 50 > /sys/devices/platform/omap/omap_i2c.1/i2c-1/1-0040/backlight/tlc 59108-bl/brightness Target# echo 250 > /sys/devices/platform/omap/omap_i2c.1/i2c-1/1-0040/backlight/tl c59108-bl/brightness 11 SD卡测试 SD系统启动卡有两个分区,一个是FAT32(boot)分区,里面有内核文件uImage, 另一个是EXT3(rootfs)分区,里面是文件系统内容。用户可以直接在Windows下将文件放到FAT32分区,因为此区在Windows系统下是可见的。 系统启动后,SD卡的两个分区分别挂载在\"/media/mmcblk0p1\"和\"/media/mmcblk0p2\" 目录下。运行如下命令查看SD卡的分区内容: Target# Target# ls /media/mmcblk0p1/ ls /media/mmcblk0p2/ 图29 SD卡写速度测试 time有计时作用,dd用于复制,从if(input file)读出,写到of(output file)。\"if=/dev/zero\"不产生IO,即可以不断输出数据,因此可以用来测试纯写速度。bs是每次写块的大小,count是读写块的数量。执行以下命令测试SD卡写速度: Target# time dd if=/dev/zero of=/media/mmcblk0p2/test bs=1024k count=200 图30 这里一共写200MB测试数据到SD卡的test文件,使用了1分5秒多点。 备注:不同的SD卡以及不同大小的测试文件,测试结果会有所差别。 SD卡读速度测试 \"of=/dev/null\"不产生IO,即可以不断接收数据,可以用来测试纯读速度。 执行以下命令测试SD卡读速度: Target# time dd if=/media/mmcblk0p2/test of=/dev/null bs=1024k 图31 将上步骤200MB的test文件读到\"/dev/null\",使用了0.8秒。 备注:不同的SD卡以及不同大小的测试文件,测试结果会有所差别。 12 SATA硬盘接口测试 (1) SATA接口可用性测试 请准备一个已经格式化为FAT32的SATA硬盘,并为SATA硬盘供电,台式机机械硬 盘一般供电电压为12V,然后将SATA硬盘连接到底板SATA接口,在开发板上电后,可以在启动信息中看到如下内容: 图32 从图中可以看到已成功挂载上以1000为进率计算大小为200GB的硬盘,以1024为 进率计算大小为186GiB,还可以从打印信息中看出挂载名是sda1。 注意:挂载名字请以实际为准,挂载多个存储设备的时候名字可能有变更。 进入文件系统后,执行以下命令查看系统所有挂载信息。可以看到SATA硬盘挂载在 \"/media/sda1\"目录下,如下图所示。 Target# df –h 图33 通过上图中的ls命令可以查看到SATA硬盘中存在的文件。 注意:本文件系统支持FAT32、EXT2、EXT3、EXT4格式的SATA硬盘,若是可以识别 但是无法正常使用,很可能使用的是NTFS格式的SATA硬盘,请重新格式化它为FAT32格式。 假如SATA硬盘没有自动挂载在media目录下,请先在media下面建立一个文件夹(例如sata1),在用以下命令手动挂载SATA硬盘: Target# Target# mkdir -p /media/sata1 mount -t vfat /dev/sda1 /media/sata1 (2) SATA硬盘接口速度测试 SATA硬盘写速度测试 执行以下命令测试SATA硬盘写速度: Target# time dd if=/dev/zero of=/media/sda1/test bs=1024k count=1000 图 34 这里一共写1GB测试数据到SATA硬盘的test文件,耗费了19.16s,约50M/s。 SATA硬盘读速度测试 执行以下命令测试SATA硬盘读速度: time dd if=/media/sda1/test of=/dev/null bs=1024k Target# 图35 将上步骤1GB的test文件读到\"/dev/null\",耗费了9.45s,约100M/s。 13 DDR3读写速率测试 测试程序路径:demo/app/ddr-test 将ddr-test文件夹拷贝到开发板系统目录下,进入ddr-test目录,执行如下命令: Target# ls 图 36 将测试文件设置为最高权限: Target# 图 37 chmod 777 bw_* 运行测试脚本: Target# ./runLmDDRBandwidth.sh 图 38 从测试结果知道:读的速度是289.85MB/s,写的速度为1177.02MB/s,读写速度为:256.98MB/s。 14 时钟设置 Linux系统中分系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会 消失,RTC时钟在有电池的情况下会长期运行。系统时钟会在系统重启时与RTC时钟同步。以下为时钟相关的常用命令: (1) 查看系统运行时钟: Target# 图39 date (2) 查看RTC时钟: Target# 图40 hwclock (3) 设置系统时钟: Target# date -s \"2016-04-07 18:30:06\" 即置为2016年04月07日,18点30分06秒。 图41 (4) 设置RTC时钟: Target# hwclock -w 执运行后系统时钟会被写入RTC。 图42 (5) 同步系统时钟: Target# hwclock –s 执行后系统会RTC时钟作为系统时钟。 图43 15 系统信息查询 (1) 查看内核和CPU信息 运行以下命令查看: uname -a Target# 图44 (2) 查看操作系统信息 运行以下命令查看: Target# cat /etc/issue 图45 操作系统信息记录在\"/etc/issue\"里面,直接修改此文件内容改变系统信息。 (3) 查看计算机名字 运行以下命令查看: hostname Target# 图46 主机名字记录在\"/etc/hostname\"里面,直接修改此文件内容改变主机名字。 (4) 查看内存使用情况 运行以下命令查看: cat /proc/meminfo Target# 图47 (5) 查看环境变量信息 运行以下命令查看: env Target# 图48 (6) 查看CPU信息 运行以下命令查看: cat /proc/cpuinfo Target# 图49 可以看到此CPU的信息。 16 程序上电自动运行 在\"/etc/rc5.d\"目录下所有以S开头的脚本程序都会上电自动运行,按照编号由小到大 和字母排序顺序被执行的,例如S97开头的脚本将比S99开头的脚本先执行。下面将演示如何上电自动helloworld程序。 先将光盘\"demo\\app\\helloworld\\helloworld\"文件拷贝到开发板文件系统任意路径,在开发板上电后,使用以下命令创建并编辑文件\"S99helloworld\": Target# vi /etc/rc5.d/S99helloworld 在S99helloworld文件中添加如下语句: #!/bin/sh /boot/helloworld //helloworld程序位于文件系统/home/root目录下,用需要执行的程 序的运行命令替换此语句即可 图50 编辑完成后输入\"wq\"保存,再执行以下命令修改此文件的权限为可执行: chmod 755 /etc/rc5.d/S99helloworld chmod 755 /boot/helloworld Target# Target# 重新系统后helloworld程序就会自动运行,如下图所示: 图51 17 FAN测试 进入开发板系统,输入以下命令即可让风扇转起来: Target# echo 100 > /sys/devices/platform/pwm-fan.1/pwm1 18 CAN测试 连接CAN0的H L GND输出到CAN1的H L GND的对应线 查看当前can设备 Target# cat /proc/net/dev 图 52 在根目录下新建两个脚本 第一个脚本用于配置并使能can0和can1: Target# vi canconfig-can0-1.sh 在vi界面中粘贴下面内容,保存退出 #!/bin/sh canconfig can0 stop canconfig can0 bitrate 125000 # canconfig can1 bitrate 125000 # 第二个脚本用于使能can0发送数据到can1: Target# vi can0-to-can1-test.sh 在vi界面中粘贴下面内容,保存退出 #!/bin/sh if [ -f can0to1data.txt ]; then rm can0to1data.txt fi candump can1 -o can0to1data.txt & for i in {1..20} do cansend can0 --identifier=0x123 0x00 0x11 0x22 0x44 0x88 0x55 0xaa 0xff done killall -9 candump if [ -f can1to0data.txt ]; then rm can1to0data.txt fi candump can0 -o can1to0data.txt & for i in {1..20} do cansend can1 --identifier=0x123 0xff 0xaa 0x55 0x88 0x44 0x22 0x11 0x00 done sync sleep 1 sync 添加执行脚本执行属性 Target# Target# chmod u+x canconfig-can0-1.sh chmod u+x can0-to-can1-test.sh 运行脚本 Target# Target# ./canconfig-can0-1.sh ./can0-to-can1-test.sh 图 53 打开目录下的can0to1ata.txt文件,看数据是否正确。 Target# cat can0to1data.txt 图 54 19 1080p30 decode使用 LCD显示 接上LCD屏并启动开发板,点击''Multimedia->1080P30 Decode and Display on LCD ->run''便可观看H.264编解码清晰视频。 HDMI输出 执行以下命令切换为HDMI输出显示: cd /usr/share/ti/ti-media-controller-utils/ ./change_display.sh hdmi //hdmi改成lcd即切换为触摸屏显示 reboot Target# Target# Target# 图 55 重启后,再执行以下命令关闭通道0图形界面: echo 0 > /sys/devices/platform/vpss/graphics0/enabled Target# 输出到显示屏,执行命令: gst-launch -v filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo. Target# 264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! omx_scaler ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false 图 56 20 GStreamer H.264编解码使用 LCD显示 接上LCD屏并启动开发板,点击''Multimedia->GStreamer 1080P30 Decode and Display on LCD ->run''便可观看H.264编解码清晰视频。 HDMI输出 执行以下命令切换为HDMI输出显示: cd /usr/share/ti/ti-media-controller-utils/ ./change_display.sh hdmi //hdmi改成lcd即切换为触摸屏显示 reboot Target# Target# Target# 图 57 重启后,再执行以下命令关闭通道0图形界面: echo 0 > /sys/devices/platform/vpss/graphics0/enabled Target# 输出到显示屏,执行命令: gst-launch -v filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo. Target# 264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! omx_scaler ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false 图 58 因篇幅问题不能全部显示,请点此查看更多更全内容