米尔MYS-8MMX开发板试用体验测评四
日前,米尔科技发布了关于MYS-8MMX开发板的测评公告,公告发布后,吸引了各大媒体平台的测评者争相报名,本期我们分享其中一名优秀测评者的测评报告,供各位参考。如需要查看往期优秀测评内容的可点击下方链接查看:
米尔MYS-8MMX开发板试用体验测评——tobot
再来一份关于米尔MYS-8MMX开发板试用体验测评报告——robe.zhang
米尔MYS-8MMX开发板试用体验测评——donatello1996
想要了解优秀测评者“dql2016”关于MYS-8MMX开发板测评原文的可以复制下方链接查看:
https://bbs.elecfans.com/jishu_2159854_1_1.html
【米尔MYS-8MMX开发板免费试用】sdk安装
拿到板子要想开发自己的应用程序首先就得安装sdk,交叉编译工具。米尔给我们提供了适合不同用户需求的SDK以及十分详细的安装手册。按照手册进行SDK安装,安装完毕会有提示:
先生效一下环境变量,现在这个SDK目录内容如下:
查看下environment-setup-aarch64-poky-linux这个脚本的内容:
1.cat environment-setup-aarch64-poky-linux
内容如下:
1.# Check for LD_LIBRARY_PATH being set, which can break SDK and generally is a bad practice
2.# http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80
3.# http://xahlee.info/UnixResource_dir/_/ldpath.html
4.# Only disable this checkIFyou are absolutely know what you are doing!
5.if [ ! -z "$LD_LIBRARY_PATH" ]; then
6. echo "Your environment is misconfigured, you probably need to 'unset LD_LIBRARY_PATH'"
7. echo "but please check why this was set in the first place and that it's safe to unset."
8. echo "The SDK will not operate correctly in most cases when LD_LIBRARY_PATH is set."
9. echo "For more references see:"
10. echo "http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80"
11. echo "http://xahlee.info/UnixResource_dir/_/ldpath.html"
12. return 1
13.fi
14.export SDKTARGETSYSROOT=/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/aarch64-poky-linux
15.export PATH=/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin:/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/sbin:/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/bin:/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/sbin:/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/../x86_64-pokysdk-linux/bin:/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux:/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux-musl:$PATH
16.export PKG_CONFIG_SYSROOT_DIR=$SDKTARGETSYSROOT
17.export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig:$SDKTARGETSYSROOT/usr/share/pkgconfig
18.export CONFIG_SITE=/media/nrjd/fsl-imx-xwayland/5.4-zeus/site-config-aarch64-poky-linux
19.export OECORE_NATIVE_SYSROOT="/media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux"
20.export OECORE_TARGET_SYSROOT="$SDKTARGETSYSROOT"
21.export OECORE_ACLOCAL_OPTS="-I /media/nrjd/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/share/aclocal"
22.export OECORE_BASELIB="lib"
23.export OECORE_TARGET_ARCH="aarch64"
24.export OECORE_TARGET_OS="linux"
25.unset command_not_found_handle
26.export CC="aarch64-poky-linux-gcc-mcpu=cortex-a53+crc --sysroot=$SDKTARGETSYSROOT"
27.export CXX="aarch64-poky-linux-g++-mcpu=cortex-a53+crc --sysroot=$SDKTARGETSYSROOT"
28.export CPP="aarch64-poky-linux-gcc -E-mcpu=cortex-a53+crc --sysroot=$SDKTARGETSYSROOT"
29.export AS="aarch64-poky-linux-as "
30.export LD="aarch64-poky-linux-ld--sysroot=$SDKTARGETSYSROOT"
31.export GDB=aarch64-poky-linux-gdb
32.export STRIP=aarch64-poky-linux-strip
33.export RANLIB=aarch64-poky-linux-ranlib
34.export OBJCOPY=aarch64-poky-linux-objcopy
35.export OBJDUMP=aarch64-poky-linux-objdump
36.export READELF=aarch64-poky-linux-readelf
37.export AR=aarch64-poky-linux-ar
38.export NM=aarch64-poky-linux-nm
39.export M4=m4
40.export TARGET_PREFIX=aarch64-poky-linux-
41.export CONFIGURE_FLAGS="--target=aarch64-poky-linux --host=aarch64-poky-linux --build=x86_64-linux --with-libtool-sysroot=$SDKTARGETSYSROOT"
42.export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types "
43.export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types "
44.export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
45.export CPPFLAGS=""
46.export KCFLAGS="--sysroot=$SDKTARGETSYSROOT"
47.export OECORE_DISTRO_VERSION="5.4-zeus"
48.export OECORE_SDK_VERSION="5.4-zeus"
49.export ARCH=ARM64
50.export CROSS_COMPILE=aarch64-poky-linux-
51.
52.# Append environment subscripts
53.if [ -d "$OECORE_TARGET_SYSROOT/environment-setup.d" ]; then
54. for envfile in $OECORE_TARGET_SYSROOT/environment-setup.d/*.sh; do
55. . $envfile
56. done
57.fi
58.if [ -d "$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
59. for envfile in $OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
60. . $envfile
61. done
62.fi
63.
都是些环境变量的设置。通过查看可知ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux-
那么交叉编译工具就是
1.aarch64-poky-linux-gcc
版本是9.2.0,这个版本对c++ 11支持还是十分全面的,为后面的应用开发提供了方便。
【米尔MYS-8MMX开发板免费试用】+emmc读写测试
米尔MYS-8MMX开发板板载了8GB eMMC,性能测试主要测试 emmc 在 linux 系统下对文件的读写速度上的测试,测试一般结合time 与 dd 双命令进行测试。写文件测试
这里测试出写磁盘速度为 36.8MB/s。
读文件测试
这里测试出读速度为 238MB/s。
【米尔MYS-8MMX开发板免费试用】+ 使用mjpg-streamer和UVC摄像头搭建网络摄像头
手上正好有一个1600万像素的USB摄像头,支持UVC,十分适合用来做网络监控应用,借助米尔MYS-8MMX开发板强大的音视频处理能力,可玩性很高。搭建网络摄像头,板子上需要运行流媒体服务器,读取摄像头数据然后通过网络发送出去,目前常用的方案有MJPG-streamer、µStreamer 、Motion 等。这里我选择性能较高的MJPG-streamer,MJPG-streamer是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,MJPG-streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有的工作都是通过它的各个插件完成的。MJPG-streamer是SourceForge网站的一个开源项目:https://sourceforge.net/projects/mjpg-streamer/目前项目已经迁移到github,这个版本增加了树莓派的支持:https://github.com/jacksonliam/mjpg-streamer
MJPG-streamer依赖jpeg库,因此首先进行jpeg 库的移植,jpeg源码包通过这个网址下载:http://www.ijg.org/
最新版本是jpegsrc.v9d.tar.gzjpeg编译
·解压源码包
1.tar-xvfjpegsrc.v9d.tar.gz
·配置源码
1.cdjpegsrc.v9d
2.export CC=aarch64-poky-linux-gcc
3../configure --host=ARM-linux --prefix=/home/test/build_jpegsrc.v9d
·编译&安装
1.make
2.make install
mjpg-stream编译
·解压源码
1.tar-xvfmjpg-streamer-r63.tar.gz
进入源码目录
1.cdmjpg-streamer-r63
创建一个目录lib用来存放交叉编译的动态库文件
1.mkdir lib
输入编译命令并指定交叉编译器
1.make CC=aarch64-poky-linux-gcc
将在目录mjpg-streamer-test/mjpg-streamer-r63生成应用程序mjpg_streamer
几个主要文件介绍如下:
· input_testpicture.so。这是一个图像测试插件,它将预设好的图像编译成一个头文件,可以在没有摄像头的情况下传输图像,从而方便调试程序。
· input_uvc.so。此文件调用USB摄像头驱动程序V4L2,从摄像头读取视频数据。
· input_control.so。这个文件实现对摄像头转动的控制接口。
· output_http.so。这是一个功能齐全的网站服务器,它不仅可以从单一文件夹中处理文件,还可以执行一定的命令,它可以从输入插件中处理一幅图像,也可以将输入插件的视频文件根据现有M-JPEG标准以HTTP视频数据服务流形式输出。
· output_file.so。这个插件的功能是将输入插件的JPEG图像存储到特定的文件夹下,它可以用来抓取图像。
将生成的mjpg-streamer-r63/plugins/output_file/output_file.so和mjpg-streamer-r63/plugins/input_uvc/input_uvc.so
拷贝到目录
mjpg-streamer-r63/lib
将上面编译的jpeg动态库libjpeg.so、libjpeg.so.9、libjpeg.so.9.4.0拷贝到目录
mjpg-streamer-r63/lib
我这里搭建了nfs,将测试目录挂载到开发板,方便调试,动态库目录内容如下:
在终端输入命令指定环境变量
1.export LD_LIBRARY_PATH=/mnt/mjpg-streamer-test/mjpg-streamer-r63/lib
然后输入命令
1.
./mjpg_streamer -i "input_uvc.so -n运行成功信息如下:
我的板子ip设置成了192.168.1.120,浏览器地址栏输入
1.http://192.168.1.120:8080/?action=snapshot
就可以看到图像了,回车可以进行单张抓拍,演示效果如下:
或者输入
1.http://192.168.1.120:8080/?action=stream
就可以看到实时视频了。
利用强大的curl可以方便的做到抓拍图片,下面是ubuntu和windows端的演示效果:
1.curl http://192.168.1.120:8080/?action=snapshot -o a.jpg
ubuntu端的效果
window端的效果
米尔电子领先的嵌入式处理器模块厂商
原文标题:米尔MYS-8MMX开发板试用体验测评——dql2016
文章出处:【微信公众号:米尔MYiR】欢迎添加关注!文章转载请注明出处。
-
开发板
+关注
关注
25文章
4933浏览量
97157
发布评论请先 登录
相关推荐
评论