STMCU小助手
发布时间:2021-7-26 10:52
|
一、OpenOCD介绍 openocd全名叫做Open On-Chip Debugger,是一个自由开放的片上调试工具和编程工具,目前已经发布到0.11.0版本,目前主流调试器几乎都支持。; B" }& Q5 |$ X2 w 支持下载器列表(部分): / n% `5 a9 L L CMSIS-DAP v2 (USB bulk based) adapter driver Nuvoton Nu-Link and Nu-Link2 adapter drivers NXP IMX GPIO mmap based adapter driver' P4 {. h- K1 R" Q7 {9 V- ?: ~ ST-Link consolidate all versions in single config ST-Link read properly old USB serial numbers! x( d+ X4 E4 P STLink/V3 support (for ST devices only) 9 z4 |' v- i1 R8 q1 Q' ^# c 二、安装openOCD) X2 w* B4 w8 H# | 1. 下载openOCD 下载地址: https://github.com/xpack-dev-tools/openocd-xpack/releases: c6 T v. ~) c8 F4 u# ^
8 B* M: w0 s$ ?: Z 2. 安装openOCD 这是第三方编译好的软件,解压后配置环境变量即可。
openocd可执行程序在 bin 目录下,将 bin 目录路径添加到环境变量中:( f" M" F! t5 O( L
配置好之后「重启电脑」。! f$ l4 \ m% F- @$ v 3. 检查是否安装完成6 M# n# ]* O7 [% |# a. B' K) V 重启后打开命令行,检查是否可以查看openocd版本:& r; W0 `( O! Y. r. N+ R
* t% C5 k# O/ L; `# k7 B 三、openOCD使用方法 1. 连接到目标芯片 openOCD连接目标芯片的命令格式为:; i1 i5 L# X: [4 b) d / T; G: h2 S$ E8 u. K; } openocd -f <接口配置文件> -f <目标芯片配置文件>7 K9 |2 E1 V8 f! U ❝ 接口配置文件和目标芯片配置文件需要使用绝对路径。 6 b. i4 S8 k6 R( g5 A% s, y8 x3 j7 c ❞ 其中「接口配置文件」是openOCD支持的下载接口,在 scripts\interface 文件夹下:5 ^4 I. t8 u0 ^
目标芯片配置文件是openOCD支持的目标芯片,在 scripts\target 文件夹下;, I/ @ t7 }' q8 S# A2 q/ \! I
比如这里我使用ST-Link v2-1下载器+STM32L431RCT6,结果如图:' a. o7 c+ Z( s7 j1 o7 R7 J: o
+ L5 E l5 ]; E 2. 下载程序) n) u4 Y) f8 I 成功连接到目标芯片后,需要使用 telnet 协议连接到 openOCD 终端,端口4444,这里我使用mobaxterm:
连接之后需要注意,此时终端所在的路径是openOCD开启服务的路径,可以使用pwd命令查看:
( ?3 R2 P! Y# O& A& b2 O 连接到openOCD终端之后,按照下面三个步骤下载程序。* k. r5 |6 d0 o# V3 `) B6 }/ } ① 目标芯片挂起,停机:( E1 ? m: H4 Y* R8 N4 _! z
, [/ n3 ] H) X! g 3. 一行命令完成 可以在启动openOCD的时候,使用 -c 参数带上要执行的命令,通过一行命令完成烧写和复位,「无需新建终端使用 telnet 连接openOCD」。
4 r- [: |% I. ?5 }& R* ^9 { 四、添加到makefile中实现一键下载 1. 添加makefile伪目标 openOCD虽然可以通过一行命令完成下载,每次都要输入这么多过于麻烦。. }5 R" m+ ^: \ 「基于STM32CubeMX生成的makefile」,将其添加作为伪目标:# d% }) S; b. Q3 A
对上述在makefile中添加的命令使用变量进行优化,方便以后不同的工程进行修改:% T- {' H% q% L
! l5 s& n, O% f/ J |
| 跟直接用原厂提供的烧录软件进行烧录有什么区别? |
《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运行工程配置说明
兔哥的初代M33【002】-H503Nucleo 内部flash操作
兔哥的杂谈【002】——如何性价比更高地去编译STM32
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
微信公众号
手机版