linux 下调试stm32
JLink安装
网址:https://www.segger.com/downloads/jlink/
选择一个版本下载,对于我这个淘宝买的10多元钱的jlink-ob必须要选择低版本的,目前选用的是V6.0。可以选择.deb或.rpm安装。
STM32CubeMx生成一个Makefile项目
stm32cubemx使用 开发环境选makefile就是了
程序下载
- 之前写过一个怎么用命令行,一步一步的选择方式,速度,芯片,烧写。在这里
- 这种方法比较麻烦,每次烧写都要选择各种选项。遇然发现一个新的方法,可以一个命令搞定,方便快捷:
# 新建一个文件名字叫flash,下面列出了flash文件内容
$ cat flash
si 1
speed 4000
device stm32f103ZET6
r
h
erase
loadfile target.hex 0x8000000
q
# 第一行选连接方式swd,jta。第三行选芯片。erase是擦除。后面就是写入hex文件。
# 保存好文件后运行以下命令写入芯片
JLinkExe flash
- 用以上方法可以烧录,将flash伪命令加入makefile,就可以实现编绎,烧录全部make命令搞定了。
flash:
sed 's/target/$(BUILD_DIR)\/$(TARGET)/g' flash_src > flash_use; \
JLinkExe flash_use; \
if [ -z $? ]; then echo "烧写成功"; else echo "烧写失败";fi
Downloading file [build/Gpio_test.hex]...
**************************
WARNING: CPU is running at low speed (8061 kHz).
**************************
Comparing flash [100%] Done.
Erasing flash [100%] Done.
Programming flash [100%] Done.
Verifying flash [100%] Done.
J-Link: Flash download: Flash programming performed for 1 range (2048 bytes)
J-Link: Flash download: Total time needed: 0.207s (Prepare: 0.104s, Compare: 0.003s, Erase: 0.000s, Program: 0.065s, Verify: 0.000s, Restore: 0.033s)
O.K.
Script processing completed.
烧写成功
程序调试
烧录都能一个命令搞定了,调试也必需要想办法。直接在Makefile中加入debug伪命令
debug:
JLinkGDBServer -if SWD -device stm32f103zet6 &\
echo "Please use:arm-none-eabi-gdb build/[Project_name].elf"
Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...
target remote localhost:2331
monitor reset
monitor halt
b main
c
|