米爾MYC-Y6ULX-V2開發板測評記錄

文章目錄

    • 1、板子上手體驗
    • 2、板載硬件
    • 3、系統信息
    • 4、 驅動測試
    • 5、編譯linux三大件
    • 7、攝像頭測試
    • 9、總結

1、板子上手體驗

首先非常感謝芯查查給了這樣一個機會來測評這樣一款性能十分強大的開發板,我拿到手的是MYC-Y6ULX-V2核心板及開發板,這塊板子具有如下特點:

  • 1、高性能i.MX6UL/i.MX6ULL系列處理器、內核Cortex-A7 主頻900Mhz;主頻還可以,已經接近1ghz了。
  • 2、郵票孔140Pin引腳;工業級:-40~85℃,這使得這塊板子非常適合開發,利于形成產品開發。
  • 3、外設資源豐富:LCD接口、 雙網口、CSI接口、USB OTG2、UART8 I2S,SPI,CAN;強大的外設接口使得這塊板子可以用來做很多事情,不用去專門找一些其他的板子來當作外接的接口。

下面貼幾張開箱的圖片,下面是包裝外觀:(米爾電子的大log)
在這里插入圖片描述
開發板正面(大大的郵票孔)
在這里插入圖片描述
附贈的電源還有網線,以及用來調試的USB線,給的還是很充足的,不用專門去額外購買了。
在這里插入圖片描述

2、板載硬件

板子的資料可以從官網獲取,網址如下:
https://www.myir.cn/shows/78/26.html

資料網站:
https://www.myir-tech.com/product/myc_y6ulx.htm

一些編譯的資料下載網站:
https://down.myir-tech.com/MYD-Y6ULX/

我拿到的是這一款
在這里插入圖片描述
接口信息如下:
在這里插入圖片描述
對應如下:
在這里插入圖片描述
板載系統的適配情況如下:
在這里插入圖片描述

3、系統信息

接上串口就可以用了,默認已經刷好了軟件,上電就可以使用,首先是確認啟動方式:
在這里插入圖片描述
這里我設置位eMMC啟動也就是0010撥碼狀態,狀態如下所示:
在這里插入圖片描述
信息查看的話我這里用的是串口,對著絲印接一下即可,如下所示:
在這里插入圖片描述
之后打開就能看到系統啟動的信息了
在這里插入圖片描述
系統是無密碼的,可以直接進入,當然不想用串口的話也可以ssh遠程登陸,先查看一下設備ip地址:
在這里插入圖片描述
之后使用ssh直接登陸就行
在這里插入圖片描述
可以看到板子默認的系統是已經安裝了ssh工具的,可以直接進去
在這里插入圖片描述
用ssh的好處是傳文件會方便很多,直接在右側的窗口拖放文件就行了,真的不要太方便。

下面來看一下板子的基本信息吧:

查看CPU型號,性能等信息,核心芯片是 i.MX6ULx 系列是基于高性能、超低功率 ARM Cortex-A7核心處理器,處理器運行速度高達 900MHz,包含 128 KB L2 高速緩存和 16 位DDR3/LPDDR2 支持。其內部集成了電源管理、安全單元和豐富的互聯接口。
在這里插入圖片描述
查看CPU的頻率,溫度等相關的信息
在這里插入圖片描述
查看CPU占用情況如下(這個一般評估某個模塊是否過度占用資源)
在這里插入圖片描述
總體情況看最上面一排就行,相關參數說明如下:

  • %us:表示用戶空間程序的 cpu 使用率(沒有通過 nice 調度)
  • %sy:表示系統空間的 cpu 使用率,主要是內核程序。
  • %ni:表示用戶空間且通過 nice 調度過的程序的 cpu 使用率。
  • %id:空閑 cpu

下面還可以進行一下cpu的壓力測試,cpu壓力測試的方案比較多,我大概了解了一下,可以用下面的方式:

  • stress命令:stress是一個Linux工具,可以用來模擬CPU、內存、磁盤等資源的壓力,用來測試系統的穩定性和性能。
  • sysbench工具:sysbench是一個多功能的基準測試工具,可以用來測試CPU、內存、數據庫性能等方面。

但是都沒跑起來,因此這里用官方推薦的計算圓周率的方案來測試,輸入echo "scale=5000; 4*a(1)" | bc -l -q &,之后會打印一個進程號出來,輸入top可以看到
在這里插入圖片描述
這個進程在測試cpu占用情況,并且占用率很高

在這里插入圖片描述
幾分鐘后會輸出一個計算結果:
在這里插入圖片描述

查看內存占用情況(這個一般運行程序的時候看一下有沒有內存泄漏用的比較多)
在這里插入圖片描述
相關字段的含義如下:

  • MemTotal :所有可用的 RAM 大小,物理內存減去預留位和內核使用
  • MemFree :LowFree + HighFree
  • Buffers :用來給塊設備做緩存的大小
  • Cached :文件的緩沖區大小
  • SwapCached :已經被交換出來的內存。與 I/O 相關

當然通過free -h命令也可以獲取內存信息,我們是512mb+4gb內存的方案,這樣看起來也沒什么問題了
在這里插入圖片描述
查看內存信息,可以看到大概就是4gb了
在這里插入圖片描述
插入一個u盤看看,這個系統已經做了自動掛載,可以看到比較順利的掛載了,輸入fdisk -l也可以看到掛載的u盤的信息。
在這里插入圖片描述

4、 驅動測試

首先是GPIO接口,這塊板子的gpio接口引腳是有一個對應關系,在這個文件里面
在這里插入圖片描述
打開如下:
在這里插入圖片描述
在linux上(也就是應用層驅動gpio),操作gpio的步驟如下:
輸入下面命令導出GPIO echo 24 > /sys/class/gpio/export
在這里插入圖片描述
設置GPIO方向:
設置為輸出

echo "out" > /sys/class/gpio/gpio24/direction

設置為輸入

echo "in" > /sys/class/gpio/gpio24/direction

查看gpio方向

cat /sys/class/gpio/gpio24/direction

之后就可以設置gpio的高低電平了
設置輸出低電平

echo "0" > /sys/class/gpio/gpio24/value

設置輸出高電平

echo "1" > /sys/class/gpio/gpio24/value

針對led,還設置了專門的驅動:

可以通過下面的命令讀取led狀態

cat /sys/class/leds/cpu/brightness

0就是關閉,這個led是pwm驅動的,這個數值在0-255之間
在這里插入圖片描述
led的操作匯總如下:

echo 0 > /sys/class/leds/cpu/brightness 熄滅led
echo 0 > /sys/class/leds/cpu/brightness 點亮led
echo "heartbeat" > /sys/class/leds/cpu/trigger 開啟led心跳

設置為心跳的效果如下:
在這里插入圖片描述

gpio還可以引申出來按鍵,按鍵的效果如下:

這里我們看一下設備樹的信息:
在這里插入圖片描述
這里用的是一個腳本來測試的按鍵,在串口輸入evtest,之后按下按鍵,就可以看到打印的信息,如下所示
在這里插入圖片描述
除了上面測試的這些,這塊板子接口豐富,由于時間原因我沒有一一測試,這里僅是淺淺的測試了一下。

5、編譯linux三大件

終于到了大頭了,下面開始看一下這個板子的系統構建框架部分,簡單來說就是linux三大件的部分了,這里主要參考這個文檔
在這里插入圖片描述
一開始我以為也是常規的buildroot的那一套,結果不是,他這里用的是Yocto的方式,這個我之前是從來沒有接觸過的,關于yocto,介紹是這樣的:

  • Yocto 不僅僅是一個制做文件系統工具,同時提供整套的基于 Linux 的開發和維護工作流程,使底層嵌入式開發者和上層應用開發者在統一的框架下開發,解決了傳統開發方式下零散和無管理的開發形態。

下面來體驗一下,這里我用的是windows上的wsl來開發,這個的好吃是可以榨干你電腦的性能,我覺得用起來還是很爽的。
把需要的文件導入,準備編譯
在這里插入圖片描述

首先還是安裝必要的庫

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect
xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-
dev pylint3 xterm

設置環境變量,這里要求用個人賬號,不能用root

mkdir -p ~/MYD-Y6ULX-devel
export DEV_ROOT=~/MYD-Y6ULX-devel
cp -r <DVDROM>/02_Images $DEV_ROOT
cp -r <DVDROM>/03_Tools $DEV_ROOT
cp -r <DVDROM>/04_Sources $DEV_ROOT

接下來是安裝編譯器,進入sdk目錄,輸入下面命令這個工具鏈要你自己用官方給的資料里面拷貝過來,有下面兩種:
在這里插入圖片描述
安裝編譯工具的命令

 ./fsl-imx-fb-glibc-x86_64-myir-image-fullcortexa7t2hf-neon-myd-y6ull14x14-toolchain-5.10-gatesgarth.sh

使用下面命令測試是否安裝完成:

source /opt/test5.10/environment-setupcortexa7t2hf-neon-poky-linux-gnueabi
$CC -v

看到如下輸出,說明OK了
在這里插入圖片描述
之后就可以編譯了(構建鏡像)

進入源碼目錄,開始解壓

cd $DEV_ROOT/04_Sources
tar -xzf MYiR-i.MX6UL-Yocto.tar.gz

大概是這些內容:
在這里插入圖片描述
然后官方教程讓你去網上拉更新下代碼,這也太慢了,還好他給了替代方案,就是這個10幾個g的大包,直接解壓他就完事了
在這里插入圖片描述
回到上一級新建一個路徑,之后去這個路徑下面解壓

 cd imx6ulx-yoctotar -xvf downloads.tar.gz -C ./

搞完是這樣的
在這里插入圖片描述
之后就可以開始編譯了(我只能說確實方便)

bitbake myir-image-full 帶gui的版本
bitbake myir-image-core 不帶gui版本

編譯開始后就會自動去尋找匹配,然后下載,之后就是瘋狂占用cpu編譯了
在這里插入圖片描述
編譯好了是這樣的,編譯產物在這個路徑下:tmp/deploy/ima ges/myd-y6ull14x14/
在這里插入圖片描述
這些就是三大件了,不得不說這個構建方式確實方便啊
在這里插入圖片描述
然后關于這個構建我總結下吧:

  • 1、網絡要好,要能連外網那種,不然總會有超時什么的拉不下來,很麻煩這樣搞得
  • 2、失敗了就再來一次,我也是失敗了兩三次才行的,但是只要成功了一次后面就沒失敗過了
  • 3、有一個小問題,是下面這個報錯
    在這里插入圖片描述
    最后解決方案是參考的這里
    https://community.nxp.com/t5/i-MX-Processors/Yocto-Error-when-generating-the-SDK-for-imx-linux-5-10/m-p/1261377

具體改動的話參考我這里吧:
在這里插入圖片描述

之后就是燒錄固件了,不得不說這個燒錄固件是真的方便了,這里我用的是usb更新(前面不是提到官方送了一個USB數據線嗎,沒想到這里用到了,真是貼心哦,爽歪歪了)
在這里插入圖片描述
更新固件步驟如下:

  • 切換啟動撥碼開關(SW1)的第三位位 OFF,第四位為 ON
  • 使用 USB 轉接線(Type-A 轉 Micro-B)連接 PC 機 USB 端口與開發板 Micro USB OTG 端口(J26)
  • 使用 DC 12V 電源適配器連接至開發板的電源座(J22)
  • 以管理員權限打開 cmd 窗口,進入 MYD-i.MX6ULX_UUU_v1.1 目錄,輸入:
    uuu.exe myd-y6ulx-y2-4e512d-qt.auto 開始燒寫系統

刷寫過程如下:
在這里插入圖片描述
進度條走完重啟:
在這里插入圖片描述
啟動
在這里插入圖片描述
如果用sd卡來更新,用下面的方式制作sd卡鏡像,之后插卡更新即可
在這里插入圖片描述
之后啟動
在這里插入圖片描述
三大件這里限于篇幅就到這里了,怎么說呢,感覺這個新的工具還是很方便,然后官方提供的這些下載工具也都很給力,用起來還是很爽的。

7、攝像頭測試

因為最近在做攝像頭相關的工作,所以就來測試一下攝像頭相關的功能吧:

首先給板子接上USB攝像頭,下面查看攝像頭信息
在這里插入圖片描述
查看dev信息
在這里插入圖片描述
查看攝像頭信息
在這里插入圖片描述
可以用下面的命令來查看視頻流
在這里插入圖片描述
視頻顯示出來如下所示:
在這里插入圖片描述
也可以直接用v4l2來查看:

v4l2-ctl --device=/dev/video2 --stream-mmap=3 --stream-to=video_output.yuv --stream-count=100

會輸出一個yuv文件,打開就能看
在這里插入圖片描述

之后嘗試使用mjpg_streamer來實現一次推流,但是我發現輸出gcc用不了,因為我用的這個是精簡版本的系統,所以就比較小了
在這里插入圖片描述
那么就只能用交叉編譯了

先把這個庫拉下來:

https://github.com/jacksonliam/mjpg-streamer/archive/refs/heads/master.zip

之后上傳到我們的wsl里面,然后unzip解壓一下

按照上面的命令(前面章節)配置一下交叉編譯器:
在這里插入圖片描述
因為現在make是用的gcc,所以需要先替換原來makefile里面的gcc為cc,使用下面的命令:

find -name "Makefile" -exec sed -i "s/CC = gcc/#CC = gcc/g" {} \;
grep -rn 'CC = gcc' * 這個是檢查效果的

結果如下,有四處被替換
在這里插入圖片描述
之后make編譯一下:
在這里插入圖片描述
生成這些庫和可執行文件
在這里插入圖片描述
拖到開發板里面
在這里插入圖片描述
運行測試

v4l2-ctl --device=/dev/video2 --stream-mmap=3 --stream-to=video_output.yuv --stream-count=100

打印如下:
在這里插入圖片描述
使用vlc拉流:(延遲一般,但是說實話對于這種板子來說還可以)

http://192.168.1.4:8080/?action=stream

在這里插入圖片描述

9、總結

限于時間原因,本次僅測評了這些內容,總的來說,這款開發板還是很不錯的,他給我眼前一亮的地方在域廠家對他的配套生態做的很好,這使得開發者上手起來會很方便。特別是系統構建這塊,其他家還在用老式的方式,這邊已經在用yocto了,非常給力,讓我學到了很多東西。廠家的文檔是十分詳細,非常適合入門學習,給深入學習也留足的空間,真想多擁有一段時間啊。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21209.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32HAL-最簡單的長、短、多擊按鍵框架

目錄 概述 一、開發環境 二、STM32CubeMx配置 三、編碼 四、運行結果 五、總結 概述 本文章使用最簡單的寫法實現長、短、多擊按鍵框架&#xff0c;非常適合移植各類型單片機&#xff0c;特別是資源少的芯片上。接下來將在stm32單片機上實現&#xff0c;只需占用1個定時…

動態控制eBPF程序加載:檢查 Tracepoint、Kprobe是否存在

前言 在 eBPF 程序開發中&#xff0c;確保程序能夠在各種不同的系統配置中兼容運行是至關重要的。本文將詳細介紹一個方案&#xff0c;通過動態檢查Tracepoint、Kprobe是否存在&#xff0c;并結合libbpf的API接口控制 eBPF 程序的加載。這種方法不僅可以提升程序的靈活性&…

jwt 實現用戶登錄完整java

登錄校驗邏輯 用戶登錄的校驗邏輯分為三個主要步驟&#xff0c;分別是校驗驗證碼&#xff0c;校驗用戶狀態和校驗密碼&#xff0c;具體邏輯如下 前端發送username、password、captchaKey、captchaCode請求登錄。判斷captchaCode是否為空&#xff0c;若為空&#xff0c;則直接…

AWS聯網和內容分發服務

概況 VPC Amazon Virtual Private Cloud (Amazon VPC) 讓您能夠全面地控制自己的虛擬網絡環境&#xff0c;包括資源放置、連接性和安全性。首先在 AWS 服務控制臺中設置 VPC。然后&#xff0c;向其中添加資源&#xff0c;例如 Amazon Elastic Compute Cloud (EC2) 和 Amazon …

數據分析必備:一步步教你如何用Pandas做數據分析(15)

1、Pandas 數據丟失 Pandas 數據丟失的操作實例 在現實生活中&#xff0c;數據丟失始終是一個問題。機器學習和數據挖掘等領域在模型預測的準確性方面面臨嚴重問題&#xff0c;因為缺少值會導致數據質量較差。在這些領域中&#xff0c;缺失值處理是使模型更準確和有效的主要重…

定個小目標之每天刷LeetCode熱題(7)

今天這道題是道簡單題&#xff0c;使用雙指針進行迭代即可&#xff0c;畫了下草圖如下 代碼如下 class Solution {public ListNode reverseList(ListNode head) {if (head null || head.next null) {return head;}ListNode p head, q head.next, temp null;while (q ! nu…

【Python如何將EXCEL拆分】

文章目錄 Python將一個EXCEL表拆分多個excel表Python將一個EXCEL表中一個sheet拆分多個sheet表 Python將一個EXCEL表拆分多個excel表 在Python中&#xff0c;你可以使用pandas庫來讀取Excel文件&#xff0c;并將一個大的Excel表格&#xff08;工作表&#xff09;拆分成多個單獨…

Writerside生成在線幫助文檔或用戶手冊軟件基礎使用教程

Writerside是JetBrains出的一個技術文檔工具&#xff0c;既能用在JetBrains IDE上&#xff0c;也能單獨用。它能幫你輕松寫、建、測、發技術文檔&#xff0c;像產品說明、API參考、開發指南等都能搞定。 特點&#xff1a; 文檔即代碼&#xff1a;它讓你像管代碼一樣管文檔&…

【大數據Spark】常見面試題(萬字!建議收藏)

文章目錄 入門級中等難度中高級難度數據傾斜解決方法 入門級 什么是Apache Spark&#xff1f;它與傳統的MapReduce有何不同&#xff1f; Apache Spark是一個開源的分布式計算系統&#xff0c;它提供了高效的數據處理和分析能力。與傳統的MapReduce相比&#xff0c;Spark具有更快…

海光CPU:國產信創的“芯“動力解讀

國產信創CPU-海光CPU CPU&#xff1a;信創根基&#xff0c;國之重器 國產CPU形成三大陣營&#xff1a;自主架構、x86及ARM。自主陣營中&#xff0c;龍芯和申威以LoongArch和SW-64為基石&#xff1b;ARM陣營由鯤鵬、飛騰主導&#xff0c;依托ARM授權研發處理器&#xff1b;x86陣…

紅帽練習 之邏輯卷 pv lv gv

邏輯卷習題 1 在/dev/sdb 存儲設備上創建物理設備分區 創建2個大小各為256MB的分區 并設置為linux lvm類型 使用first 和second 作為這些分區的名稱 parted /dev/sdb mklabel gpt parted /dev/sdb primary mkpart first 1M 256M parted /dev/sdb set 1 …

【Linux|數據恢復】extundelete和ext4magic數據恢復工具使用

環境&#xff1a;Centos7.6_x86 一、extundelete工具 1、extundelete介紹 Extundelete 是一個數據恢復工具&#xff0c;用于從 ext3 或 ext4 分區中恢復刪除文件。根據官網0.2.4版本介紹是支持ext4&#xff0c;但實際上使用發現ext4格式有些問題&#xff0c;會報以下錯誤&…

動態SQL IF語句

IF語句學習 第一種寫法(標準) 我們先來看以下標準寫法: select * from .. <where> <if test""> and ....... <if test""> and ....... <where> 我們用了一個where標簽 , 內嵌if語句 第二種寫法: 這是第二種寫法:不用where標…

大降分!重郵計算機專碩復試線大降50分!重慶郵電計算機考研考情分析!

重慶郵電大學&#xff08;Chongqing University of Posts and Telecommunications&#xff09;簡稱重郵&#xff0c;坐落于中國重慶市主城區南山風景區內&#xff0c;是中華人民共和國工業和信息化部與重慶市人民政府共建的教學研究型大學&#xff0c;入選國家“中西部高校基礎…

一篇文章搞懂Go語言切片底層原理(圖文并茂+舉例講解)

1. 切片和數組的底層關系 Go語言切片的數據結構是一個結構體&#xff1a; type slice struct {array unsafe.Pointerlen intcap int }Go語言中切片的內部結構包含地址、大小和容量。將數組比喻成一個蛋糕&#xff0c;那么切片就是需要切的那一塊&#xff0c;而那一塊的的…

c++學生管理系統

想要實現的功能 1&#xff0c;可以增加學生的信息&#xff0c;包括&#xff08;姓名&#xff0c;學號,c成績&#xff0c;高數成績&#xff0c;英語成績&#xff09; 2&#xff0c;可以刪除學生信息 3&#xff0c;修改學生信息 4&#xff0c;顯示所有學生信息 5&#xff0c…

支持AMD GPU的llm.c

anthonix/llm.c: LLM training in simple, raw C/HIP for AMD GPUs (github.com) llm.c for AMD devices This is a fork of Andrej Karpathys llm.c with support for AMD devices. 性能 在單個7900 XTX顯卡上使用默認設置&#xff0c;目前的訓練步驟耗時約為79毫秒&#x…

Docker的安裝、啟動和配置鏡像加速

前言&#xff1a; Docker 分為 CE 和 EE 兩大版本。CE 即社區版&#xff08;免費&#xff0c;支持周期 7 個月&#xff09;&#xff0c;EE 即企業版&#xff0c;強調安全&#xff0c;付費使用&#xff0c;支持周期 24 個月。 而企業部署一般都是采用Linux操作系統&#xff0c;而…

【軟件設計師】2022年上半年真題解析

??馮諾依曼計算機體系結構的基本特點是&#xff1a; A. 程序指令和數據都采用二進制表示 - 這是正確的&#xff0c;因為馮諾依曼架構下的計算機使用二進制形式來表示和處理所有信息&#xff0c;包括指令和數據。 B. 程序指令總是存儲在主存中&#xff0c;而數據則存儲在高速…

Java基礎語法詳解——入門學習教程

Java 基礎 目錄 一、數據類型 基本類型包裝類型緩存池 二、String 概覽不可變的好處String, StringBuffer and StringBuilder String Poolnew String(“abc”) 三、運算 參數傳遞float 與 double隱式類型轉換switch 四、關鍵字 finalstatic 五、Object 通用方法 概覽equals()ha…