0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32也能轻松跑Linux了 !STM32MP135开发板评测

米尔电子 2023-07-31 22:09 次阅读

本篇测评由优秀测评者“strongerHuang”提供。


上个月,意法半导体推出了新一代64位Cortex-A35内核,主频高达1.5GHz的STM32MP2x系列微处理器(MPU),这让STM32MP系列处理器又上了一个新的台阶。

最近,收到了一套米尔基于STM32MP135核心板及开发板,首次接触STM32MPx处理器,体验了一下,感觉还不错。

de89e9ec-2fab-11ee-bbcf-dac502259ad0.png

STM32MP135与普通STM32单片机在性能、价格、应用场景等各方面都有差异。同时,STM32MP135并非局限于裸机、RTOS,而是定位于更高的Linux操作系统平台。

下面就结合【米尔基于STM32MP135核心板及开发板】给大家讲解一下STM32MP135强悍的性能以及开发入门等相关的内容。

硬件平台介绍

STM32MP135的开发板有很多,这里就以米尔的【米尔基于STM32MP135核心板及开发板】为例来给大家讲述。

1、STM32MP135处理器

STM32MP135内核采用Cortex-A7,主频高达1.0GHz,属于入门级的MPU,拥有超高的性价比。

2、米尔基于STM32MP135核心板

米尔基于STM32MP135核心板主控位STM32MP135处理器,搭载DDR3L内存、标配4GB eMMC / 256MB Nand FLASH,以及32KB EEPROM接口类型为邮票孔148PIN,尺寸37mm x 39mm。

dec7d75c-2fab-11ee-bbcf-dac502259ad0.png 

应用方向:充电桩电池管理、能源管理的方向。

3、米尔基于STM32MP135底板

米尔基于STM32MP135底板的外设资源以及接口就比较丰富和多样了。直接给出官方的信息

deebd12a-2fab-11ee-bbcf-dac502259ad0.png

轻松入门

早在2019年,ST就推出了STM32MP1系列MPU,其强大的性能吸引了不少人的关注。但由于当时配套的开发资料以及生态不够完善,入手学习也难住了一大批人。
米尔设计这款米尔基于STM32MP135开发板时就考虑到了这个问题,在推出开发板的同时就推出了配套的开发资料。

deffb5b4-2fab-11ee-bbcf-dac502259ad0.png 

在STM32MP135(MYD-YF13X)平台上跑Linux相比于普通STM32跑RTOS要复杂一点,需要具备一定的相关基础知识才行。
当然,米尔也针对新手提供了配套的手把手教程,能让你快速入门。

开发介绍

MYD-YF13X 搭载基于 Linux 5.15.67 版本内核的操作系统,提供了丰富的系统资源和其他软件资源。Linux 系统平台上有许多开源的系统构建框架,米尔核心板基于Yocto 构建和定制化开发。

1、开发环境

·Linux开发主机:Debian, Ubuntu, RHEL等。

·ST配套工具:STM32CubeProg、STM32CubeMX

·安装米尔定制的 SDK

2、构建开发板镜像

第1步:获取源码

可以从米尔提供链接获取源码。
也可以从github在线获取源码。

PC$ mkdir $HOME/githubPC$ cd $HOME/githubPC$ repo init -u https://github.com/MYiR-Dev/myir-st-manifest.git --no-clone-bundle --depth=1 -m myir-stm32mp1-kirkstone.xml -b develop-yf13xPC$ repo sync

第2步:快速编译镜像

这里我们需要使用米尔提供的 envsetup.sh 脚本进行环境变量的设置

PC$: DISTRO=openstlinux-weston MACHINE=myd-yf13x-emmc source layers/meta-myir-st/scripts/envsetup.sh

然后,构建 myir-image-full 镜像。注意,选择构建不同的系统镜像,需使用不同的 bitbake 命令参数(具体命令参数可以参看提供的文档)。

第3步:构建 SDK

米尔已经提供较完整的 SDK 安装包,用户可直接使用。

3、烧录系统镜像

这里使用ST官方的STM32CubeProg 工具进行烧写,可以在Windows平台,也可以在Linux平台。提示:烧录的时间可能有点久,需要耐心等待一会儿。
当然,如果觉得慢,也可以用SD卡启动(烧写)。

4、修改板级支持包

这一节应该是相对比较重要的,也是相对比较难的,包括U-boot、 kernel等相关内容的编译与更新。
a.板载 TF-A 编译与更新

获取 TF-A 源代码:

PC$ cd /home/workPC$ tar -jxvf MYiR-STM32-tf-a.tar.bz2PC$ cd MYiR-STM32-tf-a

配置和编译源代码:加载 SDK 环境变量到当前 shell:

PC$ source /opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

进入源代码目录:

PC$ cd myir-st-arm-trusted-firmware

配置与编译源代码:

PC$ make -f $PWD/../Makefile.sdk all

以上是在独立的交叉编译环境下编译 TF-A,也可以在 Yocto 项目下编译 TF-A。
更新 TF-A:编译好之后,将 TF-A 镜像烧录进 Micro SD 卡,然后使用 dd 命令将镜像烧录到 SD 卡指定分区:

PC$: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p1 conv=fdatasyncPC$: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p2 conv=fdatasync

b.板载 u-boot 编译与更新

在独立的交叉编译环境下编译 u-boot,和上面编译 TF-A 类似,也是和常规的编译 u-boot 方法类似。

c.板载 Kernel 编译与更新

加载 SDK 环境变量:

PC$ source /opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

配置内核:

PC$ make ARCH=arm O="$PWD/../build" myir_stm32mp135x_defconfig

编译内核:

PC$ make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040 O="$PWD/../build"PC$ make ARCH=arm modules O="$PWD/../build"

这个配置可能相对比较复杂,编译时间也相对较长,具体可以参看官方手册。

5、适配硬件平台

这一节就是芯片底层相关的适配(驱动),包括创建设备树、利用STM32CubeMX 配置GPIO、外设时钟等,以及配置自己用到的管脚。
然后,就是添加自己的一些应用了。到此,基本达到入门这一步了。

最后

如果你想从STM32单片机裸机、RTOS进阶到Linux,这款STM32MP135【MYC-YF13X开发板】是一个不错的选择。同时,也会用到一些熟悉的生态工具。

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

    关注

    87

    文章

    11294

    浏览量

    209343
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355754
  • 开发板
    +关注

    关注

    25

    文章

    5033

    浏览量

    97375
收藏 人收藏

    评论

    相关推荐

    【北京迅为】《stm32mp157开发板嵌入式linux开发指南》第五章 Ubuntu使用apt-get下载

    【北京迅为】《stm32mp157开发板嵌入式linux开发指南》第五章 Ubuntu使用apt-get下载
    的头像 发表于 09-03 16:26 774次阅读
    【北京迅为】《<b class='flag-5'>stm32mp</b>157<b class='flag-5'>开发板</b>嵌入式<b class='flag-5'>linux</b><b class='flag-5'>开发</b>指南》第五章 Ubuntu使用apt-get下载

    使用STM32MP135驱动2.4寸 LCD屏幕,刷新率巨低为什么?

    使用STM32MP135 驱动2.4寸 LCD屏幕,刷新率巨低; 测试条件:(HAL库) 1、硬件SPI;2、IO操作使用寄存器配置;3、SPI时钟达到16M; SPI配置如下: IO操作配置如下: 之前使用MCU操作,刷新率都没有这么低; 实际现象(连拍两张): 求坛友们,指教一二
    发表于 05-20 06:51

    STM32MP135 linux SPI多字节时钟连续没有间隔是怎么回事?

    使用STM32MP135作为SPI主机通讯时,由于SPI从设备速度慢,数据字节之间的时钟间隔要大于等于半个时钟周期;尝试设置struct spi_ioc_transfer-&gt;word_delay_usecs参数发现没有时钟间隔,应该怎么办? 正常时序图 有问题的时序
    发表于 05-20 06:30

    MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记

    和MPU之间的区别变得越来越模糊。STM32MP135是一款入门级的高性价比MPU,适用于MCU性能达不到要求或者需要Linux的场景。米尔的STM32MP135
    发表于 03-29 18:35

    不是高性能MCU用不起,而是MP135更具性价比

    和MPU之间的区别变得越来越模糊。STM32MP135是一款入门级的高性价比MPU,适用于MCU性能达不到要求或者需要Linux的场景。米尔的STM32MP135
    的头像 发表于 03-29 08:01 1234次阅读
    不是高性能MCU用不起,而是<b class='flag-5'>MP135</b>裸<b class='flag-5'>跑</b>更具性价比

    STM32MP135移植U-Boot 2022.10-stm32mp-r1提示No serial driver found的原因?

    STM32MP135移植U-Boot 2022.10-stm32mp-r1提示No serial driver found
    发表于 03-11 08:13

    如何使用STM32CubeMx配置STM32MP135的LTDC外设?

    请问一下,如何使用STM32CubeMx配置STM32MP135的LTDC外设,打开后LTDC配置项是空的
    发表于 03-11 07:37

    STM32MP135F-DK烧录fip-stm32mp135f-dk-optee.bin后一直Reconnecting the device连不上设备的原因?

    STM32MP135F-DK开发板烧录烧录进行到fip-stm32mp135f-dk-optee.bin后一直 Reconnecting the device连不上设备,可能是什么原因?
    发表于 03-11 07:05

    STM32MP135使用STLINK方式连接STM32CubeProgram,连接提示报错的原因?

    STM32MP135开发板使用STLINK方式连接STM32CubeProgram,连接提示报错,有遇到此问题的?
    发表于 03-11 06:03

    开放式高实时高性能PLC控制器解决方案-基于米尔电子STM32MP135

    实时高性能需求尤其突出。面对以上挑战,合作伙伴翌控科技基于米尔STM32MP135开发板发布开放式高实时高性能PLC控制器解决方案,将高精准数据采集、预处理、存储、通信与高实时控制融为一体,为控制系统
    发表于 03-07 20:06

    Stm32mp135打开cache之后,用作ltdc的显存地址数据就会异常怎么解决?

    各位大佬好,本人在Stm32mp135的裸机开发过程中发现,有几个问题需要请教大家。 1-打开cache之后,用作ltdc的显存地址数据就会异常(屏幕刷新异常),请问有没有类型M7系列的mpu保护
    发表于 03-07 07:55

    请问STM32MP135C-DK开发套件是和STM32MP135F-DK开发板是一个东西吗?

    请问STM32MP135C-DK开发套件是和STM32MP135F-DK开发板是一个东西?我没找到有STM32MP135C-DK
    发表于 03-07 07:41

    STM32MP135使用HAL库驱动2.4寸刷新率巨低的原因?

    使用STM32MP135 驱动2.4寸 LCD屏幕,刷新率巨低; 测试条件:(HAL库) 1、硬件SPI;2、IO操作使用寄存器配置;3、SPI时钟达到16M; SPI配置如下: IO操作配置如下: 之前使用MCU操作,刷新率都没有这么低; 实际现象(连拍两张):
    发表于 03-07 07:17

    STM32MP135 linux SPI多字节时钟连续没有间隔怎么办?

    使用STM32MP135作为SPI主机通讯时,由于SPI从设备速度慢,数据字节之间的时钟间隔要大于等于半个时钟周期;尝试设置struct spi_ioc_transfer-&gt;word_delay_usecs参数发现没有时钟间隔,应该怎么办? 正常时序图 有问题的时序
    发表于 03-07 06:14

    盘点那些硬件+项目学习套件:STM32MP157 Linux开发板及入门常见问题解答

    来盘点一下,比较受欢迎几款“硬件+项目”学习套件,以及一些初学者比较关注的问题。 盘点一:STM32MP157 Linux开发板开发板标识图 ▋
    发表于 02-01 14:25