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
}
相关推荐
ACP广源盛139246256731 分钟前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
OIDCAT2 小时前
国产USB转千兆网卡芯片CH398-RTL8153国产替代实测与选型
网络·嵌入式硬件·智能硬件·国产芯片·usb转千兆网卡
HRTOS2 小时前
HRTOS 4.0 驱动库:06_Storage 存储设备驱动——24C02 EEPROM与I²C驱动开发
c语言·驱动开发·嵌入式硬件·51单片机
周洲08303 小时前
STM32 串口不定长接收|空闲中断 IDLE 方案,无固定帧长限制,项目实战
stm32·单片机·嵌入式硬件
我和头发拼了5 小时前
STM32--10硬件读写MPU6050
stm32·单片机·嵌入式硬件
糖糖单片机设计6 小时前
基于STM32的鱼缸水质检测系统
stm32·单片机·嵌入式硬件
HRTOS7 小时前
HRTOS 4.0 正式发布:Driver Library 基础外设驱动模块介绍
驱动开发·单片机·嵌入式硬件·51单片机
染予7 小时前
20个点位下发该如何正常操作?
单片机·嵌入式硬件
wuyk5557 小时前
从零吃透 MQTT 通信|第 5 章 MQTT 心跳保活机制深度优化,断线检测与智能自动重连
c语言·开发语言·stm32·学习
jianqiang.xue8 小时前
ESP-IDF保姆级入门23|MQTT物联网通信全解:发布订阅模式/QoS等级/遗嘱消息/主题设计/断线重连,掌握工业级标准消息通信
stm32·单片机·mcu·物联网·51单片机·iot