米尔STM32MP25x开发板Bring Up培训课程(二)

发布者:EE小广播最新更新时间:2025-02-28 来源: EEWORLD关键字:米尔  STM32  开发板 手机看文章 扫描二维码
随时随地手机看文章

  1.  概述


本文将以 MYIR 的 MYC-LD25X 核心模块及MYD-LD25X开发平台为例,讲解如何使用 STM32CubeMX 来实现Developer package最小系统和外设资源的配置。

 

 image.png?imageView2/2/w/1000

2. 修改设备树(接上一期)


查看生成的Bring up工程空文件的设备树,CA35的设备树文件夹,其他的是M33核的工程资料。


我们可以看到生成的设备树文件如下


myir@myir-vm:/mnt/hgfs/ShareWorkspace/stm32mp25x-bringup/Bringup/CA35/DeviceTree/Bringup$ tree -l

.

├── kernel

│   ├── stm32mp257d-bringup-mx.dts

│   └── stm32mp257d-bringup-mx-resmem.dtsi

├── optee-os

│   ├── stm32mp257d-bringup-mx.dts

│   ├── stm32mp257d-bringup-mx-rcc.dtsi

│   ├── stm32mp257d-bringup-mx-resmem.dtsi

│   └── stm32mp257d-bringup-mx-rif.dtsi

├── tf-a

│   ├── stm32mp257d-bringup-mx.dts

│   ├── stm32mp257d-bringup-mx-fw-config.dts

│   ├── stm32mp257d-bringup-mx-rcc.dtsi

│   └── stm32mp25-mx.dtsi

└── u-boot

    ├── stm32mp257d-bringup-mx.dts

    ├── stm32mp257d-bringup-mx-resmem.dtsi

    └── stm32mp257d-bringup-mx-u-boot.dtsi

 

4 directories, 13 files


以上的设备树已经配置了大部分内容的工程,但是工程是还无法全部启动,我们需要先把设备树同步到相应的BSP代码中。


stm32mp25x-BringUp-bsp.tar.gz已拷贝并解压到虚拟机:/home/myir。

 注:windows和ubuntu之间目录共享

myir@myir-vm:~/stm32mp25x-BringUp-bsp$ tree -L 2

.

├── Bringup

│   ├── Bringup.ioc

│   ├── CA35

│   ├── CM33

│   ├── Common

│   └── Drivers

├── build

├── FIP_artifacts

│   ├── arm-trusted-firmware

│   ├── fip

│   ├── flash-all.sh

│   ├── FlashLayout_emmc_stm32mp25x-bringup-mx.tsv

│   ├── flash.sh

│   ├── optee

│   └── u-boot

├── myir-st-optee

│   ├── fiptool-stm32mp

│   ├── Makefile.sdk

│   ├── myir-st-external-dt

│   ├── myir-st-optee

│   └── README

├── myir-st-tfa

│   ├── fiptool-stm32mp

│   ├── Makefile.sdk

│   └── tf-a-myir

├── myir-st-uboot

│   ├── fiptool-stm32mp

│   ├── Makefile.sdk

│   └── u-boot-myir

└── stm32mp-ddr-phy-A2022.11-r0

    ├── README.HOW_TO.txt

    └── stm32mp-ddr-phy-A2022.11

 

19 directories, 13 files

 

 image.png?imageView2/2/w/1000

 在“虚拟机设置”选项中设置完成后, 启动虚拟机执行如下命令进行挂载:

 myir@myir-vm# sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

sudo 密码为:123456 

在虚拟机的/mnt/hgfs目录下已经成功挂载上共享的目录,如未挂载上,可以重新启动下虚拟机。

/home/myir/目录为我这边虚拟机的目录,实际目录以自己本机为准。

tf-a设备树软链接:

myir@myir-vm:/mnt/hgfs/ShareWorkspace#  ln -s /mnt/hgfs/ShareWorkspace/Bringup/CA35/DeviceTree/bringup/tf-a/* /home/myir/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir/fdts/

Optee-os设备树stm32mp257d-bringup-mx.dts和stm32mp257d-bringup-mx-rcc.dtsi软链接:

myir@myir-vm:/mnt/hgfs/ShareWorkspace# ln -s /mnt/hgfs/ShareWorkspace/Bringup/CA35/DeviceTree/bringup/optee-os/stm32mp257d-bringup-mx.dts /home/myir/stm32mp25x-BringUp-bsp/myir-st-optee/myir-st-optee/core/arch/arm/dts/

 

root@myir-vm:/mnt/hgfs/ShareWorkspace# ln -s /mnt/hgfs/ShareWorkspace/Bringup/CA35/DeviceTree/bringup/optee-os/stm32mp257d-bringup-mx-rcc.dtsi /home/myir/stm32mp25x-BringUp-bsp/myir-st-optee/myir-st-optee/core/arch/arm/dts/

Optee-os设备树stm32mp257d-bringup-mx-resmem.dtsi和stm32mp257d-bringup-mx-rif.dtsi直接使用SourceCode压缩包Optee-os目录中的文件,可通过软链接或者拷贝的方式放到stm32mp25x-BringUp-bsp/myir-st-optee/myir-st-optee/core/arch/arm/dts/目录下。

Uboot设备树软链接:

myir@myir-vm:/mnt/hgfs/ShareWorkspace# ln -s /mnt/hgfs/ShareWorkspace/Bringup/CA35/DeviceTree/bringup/u-boot/* /home/myir/stm32mp25x-BringUp-bsp/myir-st-uboot/u-boot-myir/arch/arm/dts/

Kernel设备树软链接:

Note: STM32CubeMX 的规则是先生成 Kernel 的 dts, 然后将生成的 dts 文件拷贝到 u-boot 目录下,也就是说 u-boot 的设备树 stm32mp257d-bringup-mx.dts 是从 kernel 目录拷贝过来的,所以在 U-Boot 阶段修改设备树,添加 User code 时,请同步修改 kernel 的设备树或者将修改好的设备树拷贝到 Kernel 目录,防止下次使用 CubeMX 生成设备树的时候,u-boot 部分的修改被 kernel 未修改的设备树覆盖。

 

2.1. 配置和编译TF-A


需要手动添加 TF-A 阶段的串口配置的 user code. 使用文本编辑工具打开生成的 打开 TF-A 设备树(BringupCA35DeviceTreeBringuptf-astm32mp257d-bringup-mx.dts)

添加头文件

/* USER CODE BEGIN includes */

#include 'stm32mp25xf.dtsi'

#include 'stm32mp25-pinctrl.dtsi'

/* USER CODE END includes */

在”USER CODE BEGIN root”位置添加”chosen”和”aliases”节点:

/* USER CODE BEGIN root */

aliases {

 serial0 = &usart2;

};

chosen {

 stdout-path = 'serial0:115200n8';

 };

/* USER CODE END root */

 

增加PMIC配置

&i2c7{

 pinctrl-names = 'default';

 pinctrl-0 = <&i2c7_pins_mx>;

 status = 'okay';

 

 /* USER CODE BEGIN i2c7 */

 pmic2: stpmic@33 {

  compatible = 'st,stpmic2';

  reg = <0x33>;

  status = 'okay';

 

  regulators {

   compatible = 'st,stpmic2-regulators';

 

   vddcpu: buck1 {

    regulator-name = 'vddcpu';

    regulator-min-microvolt = <800000>;

    regulator-max-microvolt = <910000>;

    regulator-always-on;

   };

   vddcore: buck2 {

    regulator-name = 'vddcore';

    regulator-min-microvolt = <820000>;

    regulator-max-microvolt = <820000>;

    regulator-always-on;

   };

   vddgpu: buck3 {

    regulator-name = 'vddgpu';

    regulator-min-microvolt = <800000>;

    regulator-max-microvolt = <900000>;

    regulator-always-on;

   };

   vddio_pmic: buck4 {

    regulator-name = 'vddio_pmic';

    regulator-min-microvolt = <3300000>;

    regulator-max-microvolt = <3300000>;

    regulator-always-on;

   };

   v1v8: buck5 {

    regulator-name = 'v1v8';

    regulator-min-microvolt = <1800000>;

    regulator-max-microvolt = <1800000>;

    regulator-always-on;

   };

   vdd2_ddr: buck6 {

    regulator-name = 'vdd2_ddr';

    regulator-min-microvolt = <1100000>;

    regulator-max-microvolt = <1100000>;

   };

   v3v3: buck7 {

    regulator-name = 'v3v3';

    regulator-min-microvolt = <3300000>;

    regulator-max-microvolt = <3300000>;

    regulator-always-on;

   };

   vdda1v8_aon: ldo1 {

    regulator-name = 'vdda1v8_aon';

    regulator-min-microvolt = <1800000>;

    regulator-max-microvolt = <1800000>;

    regulator-always-on;

   };

   vdd_emmc: ldo2 {

    regulator-name = 'vdd_emmc';

    regulator-min-microvolt = <3300000>;

    regulator-max-microvolt = <3300000>;

    regulator-always-on;

   };

   vdd1_ddr: ldo3 {

    regulator-name = 'vdd1_ddr';

    regulator-min-microvolt = <1800000>;

    regulator-max-microvolt = <1800000>;

    regulator-enable-ramp-delay = <1000>;

   };

   vdd3v3_usb: ldo4 {

    regulator-name = 'vdd3v3_usb';

    regulator-min-microvolt = <3300000>;

    regulator-max-microvolt = <3300000>;

    regulator-always-on;

   };

   v5v_hdmi: ldo5 {

    regulator-name = 'v5v_hdmi';

    regulator-min-microvolt = <2000000>;

    regulator-max-microvolt = <2000000>;

   };

   vdd_sdcard: ldo7 {

    regulator-name = 'vdd_sdcard';

    regulator-min-microvolt = <3300000>;

    regulator-max-microvolt = <3300000>;

    regulator-always-on;

   };

   vddio_sdcard: ldo8 {

    regulator-name = 'vddio_sdcard';

    st,regulator-bypass-microvolt = <3300000>;

    regulator-min-microvolt = <3300000>;

    regulator-max-microvolt = <3300000>;

    regulator-always-on;

   };

  };

 };

 /* USER CODE END i2c7 */

};

&ddr{

 status = 'okay';

 

 /* USER CODE BEGIN ddr */

 vdd1-supply = <&vdd1_ddr>;

 vdd2-supply = <&vdd2_ddr>;

 vddq-supply = <&vdd2_ddr>;

 /* USER CODE END ddr */

};

使用文本编辑工具打开生成的 打开 TF-A 设备树(BringupCA35DeviceTreeBringuptf-astm32mp257d-bringup-mx-fw-config.dts)

本次配置不涉及防火墙内容,因此屏蔽如下内容:

/*      st-mem-firewall {

                bl31_context: bl31-context@81ff0000 {

                        reg = <0x0 0x81ff0000 0x0 0x10000>;

                        st,protreg = ;

                };

                op_tee: op-tee@82000000 {

                        reg = <0x0 0x82000000 0x0 0x2000000>;

                        st,protreg = ;

[1] [2] [3] [4] [5]
关键字:米尔  STM32  开发板 引用地址:米尔STM32MP25x开发板Bring Up培训课程(二)

上一篇:米尔STM32MP25x开发板Bring Up培训课程(一)
下一篇:米尔STM32MP25x开发板Bring Up培训课程(三)

推荐阅读最新更新时间:2026-03-24 12:02

ST官方基于米尔STM32MP135开发板培训课程(一)
本文将以Myirtech的MYD-YF13X以及STM32MP135F-DK为例,讲解如何使用STM32CubeMX结合Developer package实现最小系统启动。 1. 开发准备 1.1 Developer package准备 a. Developer package下载 b. 解压后进入source目录: c. 源码准备(可以根据每一个source目录下的README.HOW_TO.txt中第三点准备): 1.2 SDK安装 请阅读WIKI完成 Install_the_SDK。 1.3 STM32CubeProgrammer安装 请根据WIKI给出的命令
[单片机]
ST官方基于<font color='red'>米尔</font>STM32MP135<font color='red'>开发板</font><font color='red'>培训</font><font color='red'>课程</font>(一)
2023 STM32全国巡展,米尔限量发STM32MP135开发板优惠券
2023年9月12日至10月27日,以“STM32,不止于芯”为主题的第十六届STM32全国巡回研讨会将走进11个城市,本届研讨会为全天会议,我们将围绕STM32最新产品开展技术演讲和方案演示。 本次STM32全国研讨会,米尔电子将现场展出STM32相关的最新产品技术和应用演示,为工程师们提供共话交流共同探索开放式平台,届时,米尔电子的技术工程师将与各位嘉宾面对面深入交流。感兴趣的客户和朋友欢迎莅临参观了解! 米尔电子的明星产品将精彩亮相 米尔MYC-YF13X 核心板及开发板 基于STM32MP1系列MPU,STM32MP135高性价比入门级MPU设计平台,完整的安全生态系统让MCU开发者友好地过渡到MPU平
[单片机]
2023 <font color='red'>STM32</font>全国巡展,<font color='red'>米尔</font>限量发STM32MP135<font color='red'>开发板</font>优惠券
当国产芯遇上机器人:米尔RK3576开发板的ROS2奇幻之旅
当RK3576的强劲“大脑”(四核A72+四核A53)与强大的GPU、VPU、NPU加速模块相遇,一场高性价比的机器人开发革命正在悄然发生。我们成功将完整的Ubuntu 22.04与ROS2 Humble生态系统,完美移植到了这颗国产芯片上。一个稳定、全功能的机器人软件开发平台已经就绪,现在就来一起探索它的强大魅力! 一、系统启动与基础性能展示 1.硬件平台简介 • 开发板:MYD-LR3576 • 存储:eMMC 64GB • 内存:8GB LPDDR4 • 登录信息:root/123456 或 myir/123456 2. 系统基本信息 • 版本:Ubuntu 22.04.5 LTS • 启动速度:H
[嵌入式]
当国产芯遇上机器人:<font color='red'>米尔</font>RK3576<font color='red'>开发板</font>的ROS2奇幻之旅
如何移植EtherCAT Igh--基于米尔RK3576开发板
本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微 RK3576开发板)的板端移植EtherCAT Igh方案的开发测试。 摘自优秀创作者-EPTmachine 米尔基于瑞芯微RK3576开发板 EtherCAT IgH需要保证高实时性,Preempt-RT是一种针对实时性能进行了优化的Linux内核。与普通的Linux内核相比, Preempt-RT具有以下优势: 1.实时性能: Preempt-RT提供了更可靠和更精确的实时性能。它采用了一些实时调度策略和机制,使得任务能够按照严格的时间要求执行,从而适用于需要高度可预测性和低延迟的应用场景,如工业自动化、机器人控制等。 2. 硬实时能力: P
[嵌入式]
如何移植EtherCAT Igh--基于<font color='red'>米尔</font>RK3576<font color='red'>开发板</font>
追加!30套FPGA开发板免费送!米尔-安路飞龙派创意秀活动再开启
大赛简介 日前,米尔电子2025年举办的米尔-安路飞龙派FPGA/FPSoC创意开发大赛圆满落幕,吸引了众多工程师踊跃参与。为持续推动技术创新,米尔电子现重磅推出第二期福利活动——基于安路DR1M90开发板的创意秀,再次免费赠送30套FPGA开发板,旨在鼓励工程师突破思维边界,通过实践探索安路飞龙派产品的无限可能,为创新应用提供强力支持。 报名条件:用户需关注米尔电子公众号;第一期已领开发板的用户不可申请; 报名对象:面向企业、创客团队、工程师、电子爱好者、研究院等人士,不限个人或团体形式参赛。 大赛日程 01-活动申请【时间:即日起-2025/10/10】 在线填《报名申请表》(见文章下方的报名链接),
[嵌入式]
追加!30套FPGA<font color='red'>开发板</font>免费送!<font color='red'>米尔</font>-安路飞龙派创意秀活动再开启
12路1080P高清视频流,米尔RK3576 开发板重塑视频处理极限
在智能视觉技术不断发展的今天,多路摄像数据的处理与传输已成为众多应用场景的核心需求。从智能安防监控领域的全面覆盖,到工业视觉处理网关的精准检测,再到车载环视融合平台的实时驾驶辅助以及智慧社区AI防控的快速响应,多路摄像数据的处理与传输已成为关键需求,而高效且低延时的解决方案则是实现这些应用的核心。 目前多路摄像传输方案往往存在一定局限,接入路数有限,难以满足大规模监控场景的需求,且延迟较高,影响实时性,编码效率也不尽如人意,通常会占用大量带宽和存储资源。然而,米尔电子在瑞芯微 RK3576核心板上实现了 12 路高清视频流H264高效编码与RTSP低延迟推流,端到端延迟约140ms。 下面为大家介绍米尔是如何实现12路高清视频
[嵌入式]
12路1080P高清视频流,<font color='red'>米尔</font>RK3576 <font color='red'>开发板</font>重塑视频处理极限
OpenCV行人检测--基于米尔全志T527开发板
本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志 T527开发板)的OpenCV行人检测方案测试。 摘自优秀创作者-小火苗 米尔基于全志T527核心板及开发板 一、米尔基于全志T527开发板,软件环境安装 1. 安装OpenCV sudo apt-get install libopencv-dev python3-opencv 2.安装pip sudo apt-get install python3-pip 二、行人检测概论 米尔基于全志T527开发板,使用HOG和SVM构建行人检测器的关键步骤包括: 准备训练数据集:训练数据集应包含大量正样本(行人图像)和负样本(非行人图像)。
[嵌入式]
OpenCV行人检测--基于<font color='red'>米尔</font>全志T527<font color='red'>开发板</font>
米尔NXP i.MX 93开发板的QT开发指南
概述 Qt 是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。米尔NXP i.MX 93开发板(MYD-LMX9X开发板)使用Qt6.5版本进行应用开发。在Qt应用开发中,推荐使用 QtCreator 集成开发环境,可以在 Linux PC下开发Q 应用,自动化地交叉编译为开发板的 ARM 架构。 本章使用 Yocto 构建的 SDK 工具作为交叉编译系统,配合 QtCreator 快速开发图形类应用程序。 硬件资源 米尔NXP i.MX 93开发板(MYD-LMX9X开发板) 软件资源 ubuntu 20.04 64bit Qt6
[嵌入式]
<font color='red'>米尔</font>NXP i.MX 93<font color='red'>开发板</font>的QT开发指南
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved