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 基本控制指令汇总
指令名称命令格式示例说明initinitinit初始化调试接口和目标芯片resetresetreset简单复位芯片reset runreset runreset run复位后立即运行程序reset haltreset haltreset halt复位后暂停执行(调试常用)reset initreset initreset init复位并初始化芯片状态halthalthalt暂停目标执行resumeresumeresume从当前地址恢复执行resume 地址resume resume 0x08000000从指定地址开始执行stepstepstep单步执行(进入函数)五、常用操作指令
5.1 内存操作指令
指令名称命令格式示例说明读 32 位mdw mdw 0x08000000 4读取 4 个 32 位数据读 16 位mdh mdh 0x20000000 5读取 5 个 16 位数据读 8 位mdb mdb 0x08001000 8读取 8 个 8 位数据写 32 位mww mww 0x20000000 0x12345678写入 32 位数据写 16 位mwh mwh 0x20000004 0xABCD写入 16 位数据写 8 位mwb mwb 0x20000006 0xEF写入 8 位数据保存内存dump_image dump_image ram.bin 0x20000000 0x1000保存内存数据到文件5.2 Flash 操作指令
指令名称命令格式示例说明探测 Flashflash probe flash probe 0探测 Flash 设备显示信息flash info flash info 0显示 Flash 详细信息地址擦除flash erase_address flash erase_address 0x08000000 0x1000按地址范围擦除扇区擦除flash erase_sector flash erase_sector 0 0 3按扇区擦除烧录固件flash write_image flash write_image erase firmware.bin 0x08000000烧录固件到 Flash5.3 程序加载与执行
指令名称命令格式示例说明程序烧录program program Project.bin 0x08000000 verify reset烧录并验证程序加载到内存load_image load_image test.elf 0x20000000加载程序到 RAM验证固件verify_image verify_image Project.hex 0x00验证烧录结果复位运行reset runreset run复位后运行程序指定地址执行resume resume 0x20000000从指定地址执行5.4 调试指令
指令名称命令格式示例说明显示寄存器regreg显示所有 CPU 寄存器设置寄存器reg reg R1 0x1234设置寄存器值硬件断点bp hwbp 0x08000100 0x01 hw设置硬件断点移除断点rbp rbp 0x08000100移除断点数据监视点wp r/wwp 0x20000000 0x04 r设置数据监视点单步执行stepstep单步执行(进入函数)步过执行nextnext单步执行(跳过函数)六、总结
OpenOCD 是嵌入式开发中强大的调试工具,掌握基本控制指令是有效调试的基础。建议按照标准调试流程操作,结合实际项目多加练习,逐步掌握各种调试场景的应用技巧。
核心要点:
[*]始终以 init开始调试会话
[*]使用 reset halt获得可控的调试起点
[*]善用 step进行精细调试
[*]调试完成后用 reset run恢复正常执行
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 感谢发布原创作品,程序园因你更精彩 感谢,下载保存了 热心回复!
页:
[1]