news 2026/4/19 13:19:12

OpenOCD简明指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenOCD简明指南

一、OpenOCD 简介

OpenOCD(Open On-Chip Debugger)是一个开源的片上调试工具,支持多种调试器和目标芯片。它通过 JTAG、SWD 等接口与目标设备通信,提供固件烧录、调试、内存操作等功能。

二、快速烧录固件

2.1 基本烧录命令

openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program Project.hex verify reset exit"

命令解析:

-f interface/stlink-v2.cfg:指定 ST-Link V2 调试器接口

-f target/stm32f1x.cfg:指定 STM32F1 系列目标芯片

program Project.hex:烧录 Project.hex 固件

verify:验证烧录结果

reset:复位芯片

exit:退出 OpenOCD

2.2 适用场景

适用于 STM32F1 系列芯片的快速固件烧录,一次性完成烧录→验证→复位全流程。

三、Telnet 调试模式

3.1 启动调试服务

openocd -f interface/cmsis-dap.cfg -f target/stm32g4x.cfg

服务说明:

监听 3333 端口(GDB 调试)

监听 4444 端口(Telnet 交互)

保持终端运行以维持连接

3.2 连接 Telnet

telnet 127.0.0.1 4444

连接成功后进入交互模式,可直接输入 OpenOCD 指令操作目标芯片。

四、基本控制指令

4.1 基本控制指令汇总

指令名称 命令格式 示例 说明

init init init 初始化调试接口和目标芯片

reset reset reset 简单复位芯片

reset run reset run reset run 复位后立即运行程序

reset halt reset halt reset halt 复位后暂停执行(调试常用)

reset init reset init reset init 复位并初始化芯片状态

halt halt halt 暂停目标执行

resume resume resume 从当前地址恢复执行

resume 地址 resume [address] resume 0x08000000 从指定地址开始执行

step step step 单步执行(进入函数)

五、常用操作指令

5.1 内存操作指令

指令名称 命令格式 示例 说明

读 32 位 mdw [addr] [count] mdw 0x08000000 4 读取 4 个 32 位数据

读 16 位 mdh [addr] [count] mdh 0x20000000 5 读取 5 个 16 位数据

读 8 位 mdb [addr] [count] mdb 0x08001000 8 读取 8 个 8 位数据

写 32 位 mww [addr] [value] mww 0x20000000 0x12345678 写入 32 位数据

写 16 位 mwh [addr] [value] mwh 0x20000004 0xABCD 写入 16 位数据

写 8 位 mwb [addr] [value] mwb 0x20000006 0xEF 写入 8 位数据

保存内存 dump_image [file] [addr] [size] dump_image ram.bin 0x20000000 0x1000 保存内存数据到文件

5.2 Flash 操作指令

指令名称 命令格式 示例 说明

探测 Flash flash probe [num] flash probe 0 探测 Flash 设备

显示信息 flash info [num] flash info 0 显示 Flash 详细信息

地址擦除 flash erase_address [addr] [size] flash erase_address 0x08000000 0x1000 按地址范围擦除

扇区擦除 flash erase_sector [num] [first] [last] flash erase_sector 0 0 3 按扇区擦除

烧录固件 flash write_image [erase] [file] [addr] flash write_image erase firmware.bin 0x08000000 烧录固件到 Flash

5.3 程序加载与执行

指令名称 命令格式 示例 说明

程序烧录 program [file] [addr] [verify] [reset] program Project.bin 0x08000000 verify reset 烧录并验证程序

加载到内存 load_image [file] [addr] load_image test.elf 0x20000000 加载程序到 RAM

验证固件 verify_image [file] [offset] verify_image Project.hex 0x00 验证烧录结果

复位运行 reset run reset run 复位后运行程序

指定地址执行 resume [address] resume 0x20000000 从指定地址执行

5.4 调试指令

指令名称 命令格式 示例 说明

显示寄存器 reg reg 显示所有 CPU 寄存器

设置寄存器 reg [name] [value] reg R1 0x1234 设置寄存器值

硬件断点 bp [addr] [length] hw bp 0x08000100 0x01 hw 设置硬件断点

移除断点 rbp [addr] rbp 0x08000100 移除断点

数据监视点 wp [addr] [length] r/w wp 0x20000000 0x04 r 设置数据监视点

单步执行 step step 单步执行(进入函数)

步过执行 next next 单步执行(跳过函数)

六、总结

OpenOCD 是嵌入式开发中强大的调试工具,掌握基本控制指令是有效调试的基础。建议按照标准调试流程操作,结合实际项目多加练习,逐步掌握各种调试场景的应用技巧。

核心要点:

始终以 init开始调试会话

使用 reset halt获得可控的调试起点

善用 step进行精细调试

调试完成后用 reset run恢复正常执行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 9:02:26

Granite Docling 258M:轻量级多模态文档理解的技术突破与应用前景

Granite Docling 258M:轻量级多模态文档理解的技术突破与应用前景 【免费下载链接】granite-docling-258M 项目地址: https://ai.gitcode.com/hf_mirrors/ibm-granite/granite-docling-258M 在数字化浪潮席卷各行各业的今天,如何高效处理海量文档…

作者头像 李华
网站建设 2026/4/17 7:56:29

24、Linux系统的多语言支持与办公应用指南

Linux系统的多语言支持与办公应用指南 1. 多语言支持体验 在Linux系统中,能够安装英语以外的语言支持,从而让系统以不同语言呈现,这是其一大魅力所在。比如,在一台机器上可以同时支持中文、日语、瑞典语和默认的英语。只需简单点击几下,注销后重新登录,就能切换到完全不…

作者头像 李华
网站建设 2026/4/18 23:06:19

25、Linux实用软件与图像处理全攻略

Linux实用软件与图像处理全攻略 1. 文档处理软件 1.1 文档格式设置技巧 若要为文档条目设置统一格式,可选择悬挂缩进后,点击“样式与格式”窗口中的油漆桶按钮。此时鼠标指针会变为油漆桶形状,点击参考文献中的其他段落,该条目就会应用新样式。此方法同样适用于为文档其…

作者头像 李华
网站建设 2026/4/17 8:17:14

5个简单步骤:用MouseInc打造你的专属鼠标手势系统 [特殊字符]

5个简单步骤:用MouseInc打造你的专属鼠标手势系统 🚀 【免费下载链接】MouseInc.Settings MouseInc设置界面 项目地址: https://gitcode.com/gh_mirrors/mo/MouseInc.Settings 还在为频繁切换窗口、重复点击菜单而烦恼吗?想要通过优雅…

作者头像 李华
网站建设 2026/4/18 7:53:36

如何快速获取Java开发环境:JDK 1.6完整安装指南

如何快速获取Java开发环境:JDK 1.6完整安装指南 【免费下载链接】Java官方原版JDK1.6下载仓库 探索Java编程的经典起点,Java官方原版JDK 1.6版本现已开放下载。作为Java开发的核心工具集,它包含了运行时环境、基础类库及编译器,是…

作者头像 李华
网站建设 2026/4/17 8:04:21

OpCore-Simplify:小白也能上手的Hackintosh配置神器

想要在普通电脑上体验macOS的魅力吗?OpCore-Simplify就是为你量身打造的配置助手。这款智能工具通过自动化硬件识别和配置文件生成,彻底改变了传统Hackintosh配置的复杂局面,让技术新手也能轻松搭建属于自己的苹果系统环境。 【免费下载链接】…

作者头像 李华