STM32MP1(A7)交叉编译链配置及其在cmake中的使用

2023-05-16

1. 下载

传送门

在这里插入图片描述
此处博主使用的v3.1.0

2. 安装过程

# 解压
tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz

# 加权限
cd en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk
chmod 777 st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh

# 安装
./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh -d /opt/st/stm32mp1/3.1-snapshot

等待片刻,SDK将被安装到/opt/st/stm32mp1/3.1-snapshot目录下。

在这里插入图片描述
在这里插入图片描述

3. 检查配置是否成功

source /opt/st/stm32mp1/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

echo $ARCH
arm-ostl-linux-gnueabi-gcc -v
echo $OECORE_SDK_VERSION

在这里插入图片描述

4. 交叉编译链在cmake中的使用

编写cmake文件如下:

# file name: cross_compiler.cmake
# 指定编译器的 sysroot 路径
set(TOOLCHAIN_DIR /opt/st/stm32mp1/3.1-snapshot/sysroots)

# 指定交叉编译器 arm-gcc 和 arm-g++
set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/arm-ostl-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/arm-ostl-linux-gnueabi-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

编译

cmake -D CMAKE_TOOLCHAIN_FILE=../cmake/arm_linux_setup_debug.cmake ..

参考链接

  • https://blog.csdn.net/hsl416604093/article/details/119939880
  • https://mculover666.blog.csdn.net/article/details/121969843
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32MP1(A7)交叉编译链配置及其在cmake中的使用 的相关文章

随机推荐