凡亿助教-小云
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | Linux环境下如何做STM32开发?戳!
Linux环境下如何做STM32开发?戳!

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"

三、关键工具对比

1.png

四、调试技巧

日志输出:通过printf重定向至SWO引脚,配合OpenOCD查看实时日志

内存分析:使用arm-none-eabi-addr2line解析崩溃地址,定位代码位置

功耗优化:结合perf工具分析CPU占用,优化中断与低功耗模式


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论