linux环境对stm32单片机进行程序烧录

bash 复制代码
# 安装依赖
sudo apt update
sudo apt install build-essential cmake git libusb-1.0-0-dev -y

# 克隆并编译 stlink
git clone https://github.com/stlink-org/stlink.git
cd stlink
sudo make release
sudo make install
sudo ldconfig

# 添加 udev 规则(避免每次用 sudo)
sudo cp etc/udev/rules.d/49-stlinkv* /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

2. 烧录 .hex 文件(关键步骤)

.hex 文件包含地址信息,不需要手动指定 0x08000000

bash 复制代码
# 基本烧录命令
st-flash --format ihex write your_firmware.hex

参数说明:

  • --format ihex:明确告诉工具输入文件是 Intel HEX 格式
  • write:写入操作
  • your_firmware.hex:你的固件文件路径

✅ 成功标志:输出类似
Wrote 32768 bytes to 0x08000000 in 2.1s

3. 验证是否识别到设备(可选)

bash 复制代码
# 检查 ST-Link 和 STM32 是否被识别
st-info --probe

正常输出应包含芯片信息,例如:

bash 复制代码
Found 1 stlink programmers
 serial:     57FF6C06...
 flash:      65536 (pagesize: 1024)
 sram:       20480
 chipid:     0x0410
 descr:      F1xx Medium-density
相关推荐
郝学胜-神的一滴2 小时前
Linux 高并发基石:epoll 核心原理 + LT/ET 触发模式深度剖析
linux·运维·服务器·开发语言·c++·网络协议
‎ദ്ദിᵔ.˛.ᵔ₎2 小时前
Linux 启动
linux·运维·服务器
Joseph Cooper2 小时前
STM32MP157 Linux驱动学习笔记(三):系统级驱动框架(UART/PCIe)
linux·stm32·学习
funnycoffee1232 小时前
centos 上没有安装telnet命令 ,如何测试到1个目标IP的 443端口是否open
linux·tcp/ip·centos
森G2 小时前
STM32F103C8T6工程---标准库版usart2写回显
stm32·单片机
爱莉希雅&&&2 小时前
Ansible+Docker案例(含ansible配置安装docker)
linux·运维·mysql·nginx·docker·容器·ansible
wicb91wJ62 小时前
Linux服务器性能调优常用命令
linux·服务器·网络
圆山猫3 小时前
[AI] [Linux] 教我编一个启用rust的riscv kernel用于qemu启动
linux·ai·rust
EVERSPIN3 小时前
基于MCU CH32X035 Type-C PD显示器方案
单片机·mcu·计算机外设