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

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

在“虚拟机设置”选项中设置完成后, 启动虚拟机执行如下命令进行挂载:
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 =
上一篇:米尔STM32MP25x开发板Bring Up培训课程(一)
下一篇:米尔STM32MP25x开发板Bring Up培训课程(三)
推荐阅读最新更新时间:2026-03-24 12:02
- REF196 精密微功率、低压差堆叠电压基准的典型应用电路
- LTC4367IMS8 用于滞后调节的过压电源控制器的典型应用
- CLRC663非接触式读写器IC的典型应用
- 使用 ON Semiconductor 的 CS-5621 的参考设计
- RSO-0515S 15V、67mA输出DC/DC转换器典型应用电路
- NCP51200 3 Amp VTT 终端稳压器 DDR1、DDR2、DDR3、LPDDR3、DDR4 的典型应用
- LR645大电流SMPS启动电路典型应用
- ADR420 可编程电流源的典型应用
- DC417B,使用 LT1806CS8 多尺寸单运算放大器原型的演示板
- DM300019,用于评估 dsPIC30F 和 dsPIC33F MCU 系列器件的 dsPICDEM 入门开发板



STM32模拟串口
dm9000cep网卡通信
AT91SAM9G45-EKES开发板用户指南
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号