文档章节

使用CMake来构建STM32工程

hoolev
 hoolev
发布于 2015/12/22 17:59
字数 516
阅读 643
收藏 6

CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程, 可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual Studio 的 projects/workspaces 。

使用CMake来构建STM32工程,生成不同的构建文件, 如生成Visual Studio或Eclipse的工程文件,再配置好编译环境,我们就可以根据个人喜好选择IDE来开发STM32项目了。

配置toolchain

首先创建/opt/stm32-toolchain目录,所需的工具资源都会放在该目录下。

安装GCC ARM Embedded

配置toolchain的第一步是安装ARM Cortex-M和Cortex-R对应的GCC,包括预编译器、编译器和链接器等一系列工具。 最新版的GCC ARM可以从launchpad下载,这里使用的是gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2 下载后解压在/opt/stm32-toolchain/gcc-arm目录下。

安装STM32Cube

STM32Cube是一个全面的软件平台,包括了ST产品的每个系列。(STM32CubeF4 是针对STM32F4系列). 这里选择stm32cubef4.zip,最新版本可以去ST下载。 下载后解压在/opt/stm32-toolchain/stm32-cube目录下。

安装stm32-cmake

stm32-cmake是一个使用CMake、GCC和STM32CubeMX来开发STM32应用的开源项目。

cd /opt/stm32-toolchain/
git clone https://github.com/ObKo/stm32-cmake.git

构建STM32工程

首先得安装好CMake,CMake的版本不得低于2.8。 安装好CMake之后,在需要构建的STM32工程中创建好所需的CMakeLists.txt文件。 项目工程所需的CMakeLists.txt编写完成之后,使用stm32-cmake来构建工程。 下面的命令生成适用Eclipse的工程文件:

cmake -DSTM32_CHIP=STM32F407IG -DCMAKE_TOOLCHAIN_FILE=/opt/stm32-toolchain/stm32-cmake/cmake/gcc_stm32.cmake -DCMAKE_BUILD_TYPE=Debug -DTOOLCHAIN_PREFIX=/opt/stm32-toolchain/gcc-arm/gcc-arm-none-eabi-4_9-2015q3 -DSTM32Cube_DIR=/opt/stm32-toolchain/stm32-cube/STM32Cube_FW_F4_V1.9.0 -DCMAKE_MODULE_PATH=/opt/stm32-toolchain/stm32-cmake/cmake -G "Eclipse CDT4 - Unix Makefiles" <path_to_source_dir>

© 著作权归作者所有

hoolev
粉丝 13
博文 26
码字总数 12445
作品 0
广州
高级程序员
私信 提问
《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE

《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKEINSTALLPREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 前言: ...

shzwork
03/31
21
1
CMake构建VS2017工程

1 安装VS2017/cmake 2 工程开发 3 生成VS2017工程 4 参考资料 1 安装VS2017/cmake 软件安装: Visual Studio官网下载Visual Studio Community 2017,该版本是适用于学生、开源和个人开发人员的...

shzwork
04/17
46
0
(转)cmake构建时指定编译器架构(x86 or x64)

Windows vs2015 x64编译器为例,cmake命令如下: Xml代码 cmake -G "Visual Studio 14 Win64" pathtosourcedir 去掉Win64,就是32bit: Xml代码 cmake -G "Visual Studio 14" pathtosourcedi......

shzwork
06/04
11
0
part01_Linux下使用Cmake构建工程

一、安装Cmake 1.下载cmake-3.11.1.tar.gz:https://cmake.org/download/ 2.把 cmake-3.11.1.tar.gz放到任意临时目录(Cmake默认安装在:/usr/local/中),查看其权限如果没有权限直接更改权限...

IT魔幻师
2018/05/09
0
0
《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX

《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKEINSTALLPREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 四、更好...

shzwork
03/31
20
0

没有更多内容

加载失败,请刷新页面

加载更多

Gradle 的项目导入到 IntelliJ 后子项目源代码不能导入

在一个 Gradle 项目中,有若干子项目。 当 Gradle 到如后,子项目不能被 IntelliJ 识别代码。 如下图的这个代码就没有被自动识别。 这个有可能是因为你的这个子项目没有被添加到父项目中。 ...

honeymoose
19分钟前
3
0
苹果cms下载地址及模板地址

https://github.com/magicblack/maccms10 程序下载: https://www.lanzous.com/b204882 教程下载: https://www.lanzous.com/b256378 模板下载: https://www.lanzous.com/b355667 插件下载:......

chenhongjiang
19分钟前
3
0
Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)

一、HttpPost上传文件 public static String getSuffix(final MultipartFile file){ if(file == null || file.getSize() == 0){ return null; } String......

codeobj
20分钟前
3
0
在Word中怎样批量删除空行,这些点主要注意

在工作中经常接触的办公软件就是Word了,熟练使用Word中的技能是准时下班的保证。这就要求我们对Word中的各项技能都熟练于心,很多朋友诉苦Word中的排版不熟悉,每次写一篇文章排版都要花费很...

干货趣分享
26分钟前
2
0
终端-Linux命令之非交互SSH密码验证-Sshpass

> Sshpass是使用SSH所谓的“交互式键盘密码身份验证”以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图,需要交互的...

极客收藏夹
30分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部