米尔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.mzph.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…