搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机
打印 上一主题 下一主题

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

[复制链接]
查看: 35|回复: 0

19万

主题

19万

帖子

58万

积分

论坛元老

Rank: 8Rank: 8

积分
587890
跳转到指定楼层
楼主
发表于 2025-8-1 19:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.概述
本文引用地址:
本文将以 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
#include stm32mp25xf.dtsi
#include stm32mp25-pinctrl.dtsi
在”USER CODE BEGIN root”位置添加”chosen”和”aliases”节点:
aliases {
             serial0 = usart2;
};
chosen {
             stdout-path = serial0:115200n8
};
增加PMIC配置
i2c7{
             pinctrl-names = default
             pinctrl-0 = i2c7_pins_mx
             status = okay
            
             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;
                     };
            
};
ddr{
             status = okay
            
             vdd1-supply = vdd1_ddr
             vdd2-supply = vdd2_ddr
             vddq-supply = vdd2_ddr
            
};
使用文本编辑工具打开生成的 打开 TF-A 设备树(BringupCA35DeviceTreeBringuptf-astm32mp257d-bringup-mx-fw-config.dts)
本次配置不涉及防火墙内容,因此屏蔽如下内容:
新增如下内容:
        
        dtb-registry {
                soc_fw-config {
                        load-address = 0x0 0x81fc0000
                        max-size = 0x40000
                };
                tos_fw {
                        load-address = 0x0 0x82000000
                        max-size = 0x2000000
                };
       st-mem-firewall {
                bl31_context: bl31-context@81fc0000 {
                    reg = 0x0 0x81fc0000 0x0 0x40000
                    st,protreg = ;
                };
                op_tee: op-tee@82000000 {
                    reg = 0x0 0x82000000 0x0 0x2000000
                    st,protreg = ;
                };
        
以上已完成配置,就可以进行TF-A的单独编译。
myir@myir-vm: cd /home/myir/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir
myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$ source /opt/st/myd-ld25x/4.2.4-snapshot/environment-setup-cortexa35-ostl-linux
myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$ export FIP_DEPLOYDIR_ROOT=../../FIP_artifacts
myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$ export FWDDR_DIR=../../stm32mp-ddr-phy-A2022.11-r0/stm32mp-ddr-phy-A2022.11
myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$  make -f $PWD/../Makefile.sdk DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/arm-trusted-firmware TF_A_ConFIG= optee-emmc usb TF_A_DEVICETREE=stm32mp257d-bringup-mx ELF_DEBUG_ENABLE= 1 stm32 metadata
注:已将上述TF-A单独编译的命令存放在/home/myir/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir/build.sh
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 oopz大明星网,男女明星图片,明星八卦新闻,明星个人资料大全 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表