米爾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文章
5032瀏覽量
97373
發布評論請先 登錄
相關推薦
評論