米尔MYS-8MMX开发板试用体验测评——dql2016

描述

 

      

米尔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 check IF you 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  -xvf  jpegsrc.v9d.tar.gz 

· 配置源码

1. cd  jpegsrc.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  -xvf  mjpg-streamer-r63.tar.gz

进入源码目录

1. cd  mjpg-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】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分