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
}
相关推荐
无敌贵点大王11 分钟前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
碧海银沙音频科技研究院31 分钟前
粉色笔记本电脑每次要等把电池电耗尽才能开机问题解决方法
嵌入式硬件
wuyk55515 小时前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
shijuejianceliu21 小时前
传统规则视觉与嵌入式AI智能相机的技术差异
人工智能·嵌入式硬件·视觉检测·相机
Zw-awa1 天前
OLED为什么能显示字:软件I2C换成硬件I2C
stm32
不脱发的程序猿1 天前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
FPGA小迷弟1 天前
FPGA 与千兆以太网校验和:从原理到 Verilog 实现
嵌入式硬件·fpga开发·无人机·ai编程·fpga
Zw-awa2 天前
协议是人为约定:同一个字节能有三种意思
stm32
国科安芯2 天前
83 倍:ASC0108S 在推挽和开漏之间,差的不是速度,是回程
单片机·嵌入式硬件·架构·电平转换·抗辐射
国科安芯2 天前
从遥控到自治:ASP4644S2B支撑星载电源健康管理与容错配电
网络·单片机·嵌入式硬件·安全·dcdc·低轨卫星·商业航天