2026-05-18 20:14:39 +08:00
2026-05-18 19:58:03 +08:00
2026-05-18 19:58:03 +08:00
2026-05-18 19:58:03 +08:00
2026-05-18 19:58:03 +08:00
2026-05-18 19:58:03 +08:00
2026-05-18 19:58:03 +08:00
2026-05-18 20:14:39 +08:00
2026-05-18 19:58:03 +08:00

基于Cmake编译的STM32标准库项目模板

项目概述

本项目提供了一个基于 CMake 和 gcc-arm-none-eabi 编译器的模板,用于开发 STM32 微控制器的应用程序。它配置了必要的编译选项和链接脚本,使得开发者可以轻松地开始编写针对 STM32F103 系列微控制器的代码,并可在此基础上修改以支持其他控制器。

主要特性

  • CMake 构建系统:使用 CMake 来管理项目的构建过程,支持跨平台编译。
  • GCC ARM Embedded 工具链:利用 gcc-arm-none-eabi 编译器为 ARM 架构生成可执行文件。
  • STM32 标准外设库:集成了 STM32 标准外设库,简化硬件抽象层的开发。
  • 灵活的编译选项:支持 Debug 和 Release 两种编译模式,并且可以通过 CMake 配置进行自定义调整。
  • 预设的链接脚本:包含一个默认的链接脚本 STM32F103C8TX_FLASH.ld,适用于 STM32F103C8T6 微控制器。

项目结构

STM32-CMake-Demo
├── build/                     # 构建输出目录
├── cmake/                     # CMake 相关文件
│   ├── stm32base/             # STM32 基础库配置
│   └── gcc-arm-none-eabi.cmake  # GCC ARM Embedded 工具链配置
├── Libraries/                 # 外部库(如 STM32 标准外设库)
├── USER/                      # 用户源码及头文件
├── .gitignore                 # Git 忽略文件列表
├── CMakeLists.txt             # 顶层 CMake 配置文件
├── CMakePresets.json          # CMake 预设配置
└── STM32F103C8TX_FLASH.ld     # 链接脚本

关键文件说明

  • CMakeLists.txt: 顶层 CMake 脚本,定义了整个项目的编译设置、源文件以及链接库等信息。
  • cmake/gcc-arm-none-eabi.cmake: 定义了 GCC ARM Embedded 工具链的具体配置,包括编译器路径、标志等。
  • USER/src/main.c: 示例主函数入口点,演示了如何初始化 LED 并实现简单的闪烁功能。
  • Libraries/: 包含了 STM32F10x 标准外设库及其相关文件。
  • STM32F103C8TX_FLASH.ld: 针对特定型号 STM32 微控制器的内存映射链接脚本。

开始使用

  1. 确保已安装以下工具:
    • CMake (版本 >= 3.22)
    • gcc-arm-none-eabi 编译器套件
  2. 克隆此仓库到本地。
  3. 在项目根目录下创建一个构建目录并进入该目录:
mkdir build && cd build
  1. 运行 CMake 配置命令:
cmake ..
  1. 编译项目:
make

示例代码

示例代码位于 USER/src/main.c 中,展示了如何通过 GPIO 控制板载 LED 的亮灭。更多详细信息请参阅源代码。

S
Description
No description provided
Readme 311 KiB
Languages
C 80.7%
Assembly 18.8%
CMake 0.3%
Linker Script 0.2%