STM32MP157F-DK2开发板构建交叉编译链

STM32MP157F-DK2开发板构建交叉编译链

1、环境下载

在线下载ST官方软件包,ST官方定义的三大软件包Starter Package(预编译的软件镜像-烧录到开发板即可运行)、Developer Package(带交叉编译链)、Distribution Package(基于OpenEbedded/Yocto完整的构架框架和源代码,由于Developer包不含QT交叉编译链,也无法附加所以需要使用Distribution)

(1)下载Distribution Package包

初始化本地仓库,并使用国内代理

复制代码
repo init -u https://gitee.com/mirrors_STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-6.1-yocto-mickledore-mpu-v24.06.26

如果repo命令没有安装需要安装并验证版本

复制代码
sudo curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
repo --version

之后使用同步命令下载

复制代码
repo sync

(2)下载相关库并且配置

首先下载对应的qt资源

复制代码
git clone -b v2.2.0 https://github.com/STMicroelectronics/meta-st-x-linux-qt.git meta-st/meta-st-x-linux-qt
git clone -b 6.8 https://code.qt.io/yocto/meta-qt6.git
git clone -b mickledore https://github.com/kraj/meta-clang.git

配置

复制代码
BSP_DEPENDENCY="layers/meta-qt6 layers/meta-st/meta-st-x-linux-qt layers/meta-clang" DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh 

2、生成交叉编译链

(1)生成一个可以在开发板上启动运行的完整 Linux 系统镜像

复制代码
bitbake st-image-qt package-index

这个命令运行时间很长,需要重复运行直到下载完成

(2)生成"交叉编译工具链安装包"

复制代码
bitbake st-image-qt -c populate_sdk

这个命令执行完即可生成可执行SDK构建遍历链

注:这里有个问题qt编译时需要使用镜像自带的编译环境进行编译,要不打包时qt会用系统的环境,需要在"layers/meta-qt6/recipes-qt/qt6/gn-native_git.bbappend"文件下后面追加下面的代码

复制代码
do_compile() {
    ${PYTHON} ${S}/src/3rdparty/gn/build/gen.py \
        --no-last-commit-position \
        --out-path ${B} \
        --cc ${CC} \
        --cxx ${CXX} \
        --ld ${CXX} \
        --platform linux \
        --ar ${AR} \
        --qt-version ${QT_VERSION}
    
    # GCC 9 不支持 -std=gnu++20,替换为支持的 -std=gnu++2a
    sed -i 's/-std=gnu++20/-std=gnu++2a/g' ${B}/build.ninja
    
    ninja -C ${B} gn
}
相关推荐
小羊先生car2 小时前
F429-HAL-RS485(回环/双机实验)(2026/8/16)
c语言·单片机·嵌入式硬件·软件构建
木白CPP2 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
zlinear数据采集卡3 小时前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
水果里面有苹果5 小时前
33-TPS62130RGTR-3A降压器
嵌入式硬件
振南的单片机世界6 小时前
推挽vs开漏:一个“强拉硬灌”,一个“只拉不管”
arm开发·stm32·单片机·嵌入式硬件
小心亦新6 小时前
STM32学习23--I2C-1
stm32·嵌入式硬件·学习
小羊先生car7 小时前
F429-HAL-Can总线(回环及双机实验)(2026/8/15)
c语言·单片机·嵌入式硬件·软件构建
嵌入式阿蔡7 小时前
STM32时钟树详解:配错一个全乱套
c语言·stm32·单片机·嵌入式硬件
Dr.kangder8 小时前
嵌入式面试总结(二十)——ISA原理
单片机·面试·职场和发展·系统架构·嵌入式