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

准备stm32mp-ddr-phy

复制代码
参考stm32mp-ddr-phy-A2022.11-r0目录下README.HOW_TO.txt.stm32mp2,非常重要!!!

cd ~/develop/STM32MP2/test/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux

#准备stm32mp-ddr-phy源码
cd stm32mp-ddr-phy-A2022.11-r0/
tar xf stm32mp-ddr-phy-A2022.11-r0.tar.xz
cd stm32mp-ddr-phy-A2022.11/
test -d .git || git init . && git add . && git commit -m "new stm32mp-ddr-phy" && git gc
git checkout -b WORKING

准备TF-A

复制代码
参考tf-a-stm32mp-v2.10.13-stm32mp-r2-r0目录下README.HOW_TO.txt.stm32mp2,非常重要!!!
cd tf-a-stm32mp-v2.10.13-stm32mp-r2-r0/
vi test.sh

#在test.sh增加以下内容,参考README.HOW_TO.txt.stm32mp2的4.2,打补丁+git管理
tar xf tf-a-stm32mp-v2.10.13-stm32mp-r2-r0.tar.xz
cd tf-a-stm32mp-v2.10.13-stm32mp-r2
test -d .git || git init . && git add . && git commit -m "tf-a source code" && git gc
git checkout -b WORKING
for p in `ls -1 ../*.patch`; do git am $p; done
#end of test.sh

/bin/bash test.sh

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 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
source ~/sdk6.6_mp2
cd tf-a-stm32mp-v2.10.13-stm32mp-r2/
make -f $PWD/../Makefile.sdk.stm32mp2 clean
make -f $PWD/../Makefile.sdk.stm32mp2 stm32

按照步骤,编译成功如下图所示,同时会在arm-trusted-firmware目录下生成多个文件和目录

准备optee

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


#将DEPLOYDIR修改成optee
export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/optee

cd optee-os-stm32mp-4.0.0-stm32mp-r2-r0/
vi test.sh

#在test.sh增加以下内容,参考README.HOW_TO.txt.stm32mp2的4.2,打补丁+git管理
tar xf optee-os-stm32mp-4.0.0-stm32mp-r2-r0.tar.xz
cd optee-os-stm32mp-4.0.0-stm32mp-r2
test -d .git || git init . && git add . && git commit -m "optee-os source code" && git gc
git checkout -b WORKING
tar xf ../fonts.tar.gz
for p in `ls -1 ../*.patch`; do git am $p; done
#end of test.sh

/bin/bash test.sh

cd optee-os-stm32mp-4.0.0-stm32mp-r2/

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

按照步骤,编译成功如下图所示,同时会在optee目录下生成多个文件和目录

准备u-boot

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


#将DEPLOYDIR修改成u-boot
export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/u-boot

cd u-boot-stm32mp-v2023.10-stm32mp-r2-r0/
vi test.sh

#在test.sh增加以下内容,参考README.HOW_TO.txt.stm32mp2的4.2,打补丁+git管理
tar xf u-boot-stm32mp-v2023.10-stm32mp-r2-r0.tar.xz
cd u-boot-stm32mp-v2023.10-stm32mp-r2
test -d .git || git init . && git add . && git commit -m "U-Boot source code" && git gc
git checkout -b WORKING
for p in `ls -1 ../*.patch`; do git am $p; done
#end of test.sh

/bin/bash test.sh

cd u-boot-stm32mp-v2023.10-stm32mp-r2/

make -f $PWD/../Makefile.sdk.stm32mp2 clean
make -f $PWD/../Makefile.sdk.stm32mp2 UBOOT_CONFIG=default UBOOT_DEFCONFIG=stm32mp25_defconfig UBOOT_BINARY=u-boot.dtb DEVICE_TREE=stm32mp257f-ev1 all

按照步骤,编译成功如下图所示,同时会在u-boot和fip目录下生成多个文件和目录

准备kernel - 暂时不需要

下一章

使用STM32CubeMX生成的设备树

编译TF-A

编译optee

编译uboot和fip

相关推荐
不悔哥1 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
家和801 天前
Carla仿真系列:4_在 Carla 的 Tesla 上装 4 路摄像头,并创建网格为环视拼接做准备
开源
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
感谢地心引力1 天前
我用 Doubao-Seed-2.1-pro 做了一个深度融入 AI 功能的本地知识库软件
ai·开源·seed·markdown·豆包
alsmile1 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
优信电子1 天前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
深圳老胡1 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
女神下凡1 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
瑶山2 天前
开源编程Agent-OpenCode完整使用教程
开源·agent·ai编程·opencode