Linux系统凭借开源工具链与高效脚本能力,已成为嵌入式开发的重要平台。本文将谈谈STM32单片机在Linux环境下的开发流程,从环境搭建到调试部署,全流程说清楚,以供各位参考。
一、开发环境搭建
1、工具链安装
GCC-ARM-Embedded:sudo apt-get install gcc-arm-none-eabi(提供ARM架构交叉编译器)
OpenOCD:sudo apt-get install openocd(硬件调试与烧录工具)
STM32CubeMX:官方代码生成工具,支持Linux版本(需从ST官网下载.deb/.rpm包)
2、编辑器配置
VS Code + Cortex-Debug插件:实现代码编辑、编译、调试一体化
Vim/Emacs:轻量级方案,搭配Makefile构建系统
二、核心开发流程
1、项目初始化
通过STM32CubeMX生成工程模板,配置时钟树、外设(GPIO/UART/SPI等)
选择“Makefile”作为项目格式,生成代码后导入编辑器
2、编译与构建
执行make命令,调用arm-none-eabi-gcc编译代码
输出.elf/.hex/.bin文件,供烧录使用
3、硬件调试
OpenOCD配置:编写.cfg文件指定调试接口(如ST-Link)和芯片型号
GDB调试:
arm-none-eabi-gdb -x openocd.gdb # 加载GDB脚本
target extended-remote :3333 # 连接OpenOCD
load # 烧录程序
break main # 设置断点
continue # 启动调试
4、自动化脚本示例
#!/bin/bash
make clean && make -j4 && openocd -f stm32f4.cfg -c "program build/app.elf verify reset exit"
三、关键工具对比

四、调试技巧
日志输出:通过printf重定向至SWO引脚,配合OpenOCD查看实时日志
内存分析:使用arm-none-eabi-addr2line解析崩溃地址,定位代码位置
功耗优化:结合perf工具分析CPU占用,优化中断与低功耗模式
本文凡亿教育原创文章,转载请注明来源!
暂无评论