STMCU小助手
发布时间:2021-7-26 10:52
|
一、OpenOCD介绍: ^: e$ P }1 J, }! M% t! A+ s openocd全名叫做Open On-Chip Debugger,是一个自由开放的片上调试工具和编程工具,目前已经发布到0.11.0版本,目前主流调试器几乎都支持。" X0 b" C: v9 T: y4 |+ I- g ( c9 n7 h& k2 T0 G* A- k# N0 f& k3 f 支持下载器列表(部分):/ c( X4 A3 t( b; H; c m1 @ CMSIS-DAP v2 (USB bulk based) adapter driver Nuvoton Nu-Link and Nu-Link2 adapter drivers' h: T9 ?, t: S5 { NXP IMX GPIO mmap based adapter driver ST-Link consolidate all versions in single config6 b+ s* n& s! y3 V- N0 P7 Z6 a4 _ ST-Link read properly old USB serial numbers STLink/V3 support (for ST devices only) 二、安装openOCD- [9 C$ R' }$ {" P8 C, N9 { 1. 下载openOCD7 z7 j7 e7 \2 ]9 z/ L3 N2 k 下载地址:2 x Z5 F! @) T7 {+ \4 g+ Z https://github.com/xpack-dev-tools/openocd-xpack/releases$ e# ?9 J. T# z! H
2. 安装openOCD 这是第三方编译好的软件,解压后配置环境变量即可。8 M2 \# M: X: s9 _4 Q8 z9 _5 P
openocd可执行程序在 bin 目录下,将 bin 目录路径添加到环境变量中:6 G) I7 |' e: R# s/ @
配置好之后「重启电脑」。 3. 检查是否安装完成 重启后打开命令行,检查是否可以查看openocd版本:
三、openOCD使用方法 1. 连接到目标芯片 openOCD连接目标芯片的命令格式为: openocd -f <接口配置文件> -f <目标芯片配置文件>& [% c- k& C# \ ❝ 接口配置文件和目标芯片配置文件需要使用绝对路径。: P+ m+ o. _) K3 M- {$ L4 V ❞ 其中「接口配置文件」是openOCD支持的下载接口,在 scripts\interface 文件夹下:
目标芯片配置文件是openOCD支持的目标芯片,在 scripts\target 文件夹下;! V4 d5 O5 c! h4 A1 B: K9 f2 o$ a
比如这里我使用ST-Link v2-1下载器+STM32L431RCT6,结果如图:
" s- N3 }% Y) f/ g) B 2. 下载程序 成功连接到目标芯片后,需要使用 telnet 协议连接到 openOCD 终端,端口4444,这里我使用mobaxterm:
连接之后需要注意,此时终端所在的路径是openOCD开启服务的路径,可以使用pwd命令查看:3 y* R$ z$ z" d9 X
连接到openOCD终端之后,按照下面三个步骤下载程序。1 R& Y: d# j7 R9 j ① 目标芯片挂起,停机:- J' {2 ?6 O. d' @" J/ I$ Z5 h0 r/ x
3. 一行命令完成" G9 @' p& l1 z/ S5 U. b" ] 可以在启动openOCD的时候,使用 -c 参数带上要执行的命令,通过一行命令完成烧写和复位,「无需新建终端使用 telnet 连接openOCD」。+ U+ E5 H/ a/ j# P- m
四、添加到makefile中实现一键下载 1. 添加makefile伪目标1 P6 I+ `, M' o% p1 n1 n! J openOCD虽然可以通过一行命令完成下载,每次都要输入这么多过于麻烦。0 s4 i* q4 E; Q 0 F" L7 w! C0 K 「基于STM32CubeMX生成的makefile」,将其添加作为伪目标: [' W" `% k9 Y1 z0 @
对上述在makefile中添加的命令使用变量进行优化,方便以后不同的工程进行修改:& @) S& `0 f0 b- k, p
8 e$ i0 o( f" z( N2 Q. M9 } ; v' S- O1 N7 M) `) n0 C |
| 跟直接用原厂提供的烧录软件进行烧录有什么区别? |
《STM32CubeMX2 实战课程》学习笔记5+CubeMX2生成的Uart初始化代码中没有使能
《STM32CubeMX2 实战课程》学习笔记4+FreeRTOS中的SysTick错误及改正
使用stm32C542做的低功耗密码锁示例
《STM32CubeMX2 实战课程》学习笔记1+由MX2生成MDK5项目并打开
《STM32CubeMX2 实战课程》学习笔记3.+sleep/stop/standby低功耗模式的入口
《STM32CubeMX2 实战课程》学习笔记2+MX2生成的MDK5工程中添加已存在文件(*.c / *.h)
【STM32MP257-DK】01开发板开箱、ST MPU 生态资源使用、环境搭建以及镜像更新
基于STM32在线升级OTA经验分享
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
Keil下的STM32N6之RAM运行工程配置说明
微信公众号
手机版