CLion 开发stm32全套流程讲解
1.GCC是啥
1. 全称
GNU Compiler Collection,GNU 编译器套件 早期原名:GNU C Compiler(只编译 C 语言),后来扩展支持多语言,改名编译器集合。
2. 核心作用
Linux/Unix 系统标准编译工具,把 C/C++/Objective-C/Go/Fortran 等高级语言翻译成机器可执行程序。
gcc:默认编译 C 语言g++:调用 gcc 并自动链接 C++ 标准库,编译 C++
总结一句话就是可以将 代码从C语言代码和C++代码到二进制源文件的工具,想要将写好的c语言代码运行,就必须要有他这个工具,主要是将下面4个步骤帮你自动完成
- 预处理(-E):展开头文件、宏替换
- 编译(-S):生成汇编代码
- 汇编(-c):生成二进制目标文件
.o - 链接:整合目标文件 + 系统库,生成可执行文件
# 编译c代码,输出a.out
gcc test.c
# 指定输出文件名
gcc test.c -o test
# C++编译
g++ main.cpp -o main
2.Cmake是啥
CMake 是跨平台工程构建管理工具,本身不编译代码,只负责「生成编译规则文件」,指挥编译器、链接器干活。 传统单片机项目手写 Makefile 极其繁琐,CMake 用一套简单脚本(CMakeLists.txt)自动生成编译配置,Windows/Linux/Mac 全平台通用。
Windows 默认编译器是 MinGW,生成电脑 exe; CMake 可以配置切换成 arm-none-eabi-gcc,专门生成 STM32 ARM 内核能运行的固件,这是单片机开发的核心需求。,我使用的是Clion加上cmake加GCC,加上NinJa,通过cmake链接项目,生成NinJa构建脚本,一键编译所有代码,输出成可以下载进入单片机的.elf固件
3.GDB是啥
GDB = GNU Debugger,GNU 开源调试器。 专门用来查看程序运行、打断点、单步、看变量、排查崩溃。 分两种使用场景:
- PC 本地程序调试(Windows/Linux 电脑软件)
- 嵌入式远程调试(你的 STM32 单片机,搭配 OpenOCD)
1. 核心类比(分清整套链路角色)
- CMake + arm-gcc:做饭,把 C 代码做成
.elf固件(带调试信息的 “半成品饭菜”) - OpenOCD:传菜员 / 接线桥,一边连电脑,一边通过 ST-Link 连单片机芯片,监听 3333 端口
- arm-none-eabi-gdb(在你电脑本地):你的操作台遥控器 你在 CLion 点断点、单步、查看变量、复位芯片,全部操作指令由 GDB 下发,交给 OpenOCD 转发给单片机硬件执行。
2. GDB 两大核心能力
能力 1:解析 elf 固件里的调试符号
编译时 gcc 会把代码行号、函数名、全局 / 局部变量打包进 .elf 文件。 GDB 读取 elf 后,就能做到:
- 看 C 源码调试,不用看晦涩的汇编地址;
- 直接打印变量值,不用手动读内存地址。
如果你编译时关掉调试信息,GDB 只能看到汇编,完全无法对应 C 代码。
能力 2:远程通信控制硬件(嵌入式关键)
单片机不能直接跑 GDB,必须走远程模式:
- GDB 执行命令
target remote localhost:3333连接 OpenOCD 服务; - 所有硬件操作指令,GDB 自己不会处理,打包发给 OpenOCD:
monitor reset halt:复位单片机、停机(monitor 是专门发给 OpenOCD 的指令)load:下载 elf 固件到 STM32 Flashbreak main:在 main 函数打断点continue:让单片机继续运行print variable:读取单片机 RAM 里变量的值
了解了上述的概念之后,可以进行Clion的配置和安装了
4.安装和配置Clion
1.前往官网安装Clion
2.按照博主开源步骤进行配置
3.配置环境,按照博主开源的方案
不过,在这一步,我建议如果你主力使用hal库进行开发,你就需要直接下载STM32CubeCLT_1.22.0,这个工具包,里面直接包含了,gcc,g++,GDB,再按照博主额外下载openOCD进行调试就行
4.展示我的配置界面


更多推荐




所有评论(0)