从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(四)

新建工程

输入STM32MP257DAK3

勾选第二个选项 - A35 Master with Cotex M33 TrustZone actived

保存工程

配置DDR_CTRL_PHY如下图所示,点击生成代码

配置串口USART2,用作输出串口调试信息

准备external-dt-6.0-r0

复制代码
参考external-dt-6.0-r0目录下README.HOW_TO.txt.stm32mp2,非常重要!!!
!!!注意:如果是在当前的shell环境下面,则不需要重新声明TF-A的环境变量

export EXTDT_DIR=/home/niuke/develop/STM32MP2/Develop-Package/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux/external-dt-6.0-r0/external-dt-6.0


cd external-dt-6.0-r0/
vi test.sh

#在test.sh增加以下内容,参考README.HOW_TO.txt.stm32mp2的2.1,打补丁+git管理
tar xf external-dt-6.0-r0.tar.xz
cd external-dt-6.0
test -d .git || git init . && git add . && git commit -m "new dt" && git gc
git checkout -b WORKING
#end of test.sh

/bin/bash test.sh

建立软连接

复制代码
cd external-dt-6.0/stm32mp2/a35-td/tf-a/
ln -sf ~/develop/STM32CubeMX/DEVELOP/CA35/DeviceTree/DEVELOP/tf-a/* ./

cd ../optee/
ln -sf ~/develop/STM32CubeMX/DEVELOP/CA35/DeviceTree/DEVELOP/optee-os/* ./

cd ../u-boot/
ln -sf ~/develop/STM32CubeMX/DEVELOP/CA35/DeviceTree/DEVELOP/u-boot/* ./

编译TF-A

复制代码
source ~/sdk6.6_mp2

export FIP_DEPLOYDIR_ROOT=/home/niuke/develop/STM32MP2/test/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux/FIP_artifacts

export EXTDT_DIR=/home/niuke/develop/STM32MP2/test/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux/external-dt-6.0-r0/external-dt-6.0

export FWDDR_DIR=/home/niuke/develop/STM32MP2/test/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux/stm32mp-ddr-phy-A2022.11-r0/stm32mp-ddr-phy-A2022.11

export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/arm-trusted-firmware

#进入TF---A源码目录
cd tf-a-stm32mp-v2.10.13-stm32mp-r2/

make -f $PWD/../Makefile.sdk.stm32mp2 clean

#EMMC启动
make -f $PWD/../Makefile.sdk.stm32mp2 TF_A_DEVICETREE=stm32mp257d-develop-mx TF_A_CONFIG=optee-emmc ELF_DEBUG_ENABLE='1' stm32

#STM32CUbeMX USB下载
make -f $PWD/../Makefile.sdk.stm32mp2 TF_A_DEVICETREE=stm32mp257d-develop-mx TF_A_CONFIG=optee-programmer-usb ELF_DEBUG_ENABLE='1' stm32

make -f $PWD/../Makefile.sdk.stm32mp2 metadata

编译成功,如下图所示

编译optee

复制代码
cd ../../optee-os-stm32mp-4.0.0-stm32mp-r2-r0/optee-os-stm32mp-4.0.0-stm32mp-r2/

export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/optee

make -f $PWD/../Makefile.sdk.stm32mp2 clean

make -f $PWD/../Makefile.sdk.stm32mp2 CFG_EMBED_DTB_SOURCE_FILE=stm32mp257d-develop-mx optee

编译uboot和生成fip文件

复制代码
cd ../../u-boot-stm32mp-v2023.10-stm32mp-r2-r0/u-boot-stm32mp-v2023.10-stm32mp-r2/

export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/u-boot

make -f $PWD/../Makefile.sdk.stm32mp2 clean

make -f $PWD/../Makefile.sdk.stm32mp2 UBOOT_CONFIG=default FIP_CONFIG=optee-emmc UBOOT_DEFCONFIG=stm32mp25_defconfig UBOOT_BINARY=u-boot.dtb DEVICE_TREE=stm32mp257d-develop-mx all

make -f $PWD/../Makefile.sdk.stm32mp2 UBOOT_CONFIG=programmer FIP_CONFIG=optee-programmer-usb UBOOT_DEFCONFIG=stm32mp25_defconfig UBOOT_BINARY=u-boot.dtb DEVICE_TREE=stm32mp257d-develop-mx all

下一章

自制Flash.tsv文件

从零开始修改STM32CubeMX配置

使用STM32 Programmer烧录

相关推荐
崇山峻岭之间2 小时前
HC32F460PETB的PB2的Vout123
单片机
恶魔泡泡糖2 小时前
stm32F103C8T6标准库串口接收之中断方式2
stm32·单片机·嵌入式硬件
充哥单片机设计2 小时前
【STM32开源项目】智能小区充电桩
stm32·单片机·嵌入式硬件·毕业设计·小区充电桩·智能小区充电桩
嵌入式-老费3 小时前
esp32开发与应用(如何解决SoC冷启动的问题)
单片机·嵌入式硬件
星核0penstarry4 小时前
从“一次生成“到“持续进化“:自进化社媒 Agent 的工作流拆解
人工智能·开源·agent
充哥单片机设计4 小时前
【STM32开源项目】智能语音台灯
stm32·单片机·嵌入式硬件·毕业设计·单片机设计·智能语音台灯
EatFan5 小时前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网·esp32
sunoo-2295 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Brilliantwxx6 小时前
【STM32】 SPI阻塞式通信与HAL源码 (源码分析)
stm32·单片机·嵌入式硬件
Doraemomo6 小时前
IMX6ULL裸机开发——PWM
arm开发·嵌入式硬件·imx6ull