Go to file
skythinker f3886c3b28 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
gdb 提交V1.0.0版本 2022-01-02 00:31:59 +08:00
imgs 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
openocd 提交V1.0.0版本 2022-01-02 00:31:59 +08:00
qss 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
LICENSE Initial commit 2022-01-01 15:38:02 +00:00
LinkScope.pro 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
LinkScope.pro.user 优化界面样式;修复符号文件路径不支持非ASCII字符的问题;增加对elf格式的支持;添加未选择符号文件的警告框;修复连接错误导致闪退的问题;版本号更新为1.0.1 2022-01-25 16:13:54 +08:00
README.md 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
aboutwindow.cpp 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
aboutwindow.h 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
aboutwindow.ui 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
graphwindow.cpp 优化界面样式;修复符号文件路径不支持非ASCII字符的问题;增加对elf格式的支持;添加未选择符号文件的警告框;修复连接错误导致闪退的问题;版本号更新为1.0.1 2022-01-25 16:13:54 +08:00
graphwindow.h 提交V1.0.0版本 2022-01-02 00:31:59 +08:00
graphwindow.ui 提交V1.0.0版本 2022-01-02 00:31:59 +08:00
helpwindow.cpp 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
helpwindow.h 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
helpwindow.ui 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
icon.ico 提交V1.0.0版本 2022-01-02 00:31:59 +08:00
listwindow.cpp 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
listwindow.h 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
listwindow.ui 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
main.cpp 提交V1.0.0版本 2022-01-02 00:31:59 +08:00
mainwindow.cpp 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
mainwindow.h 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
mainwindow.ui 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
res.qrc 增加变量选择器;美化帮助窗口和关于窗口;添加反馈通道;添加检查更新功能;版本号更新为V1.0.2 2022-01-29 20:20:15 +08:00
vartype.h 提交V1.0.0版本 2022-01-02 00:31:59 +08:00

README.md

LinkScope


项目简介

本程序使用QT编写基于OpenOCD和GDB用于硬件设备的调试有以下几个功能

  • 实时查看修改变量值

  • 变量值波形实时绘制

  • 采样数据导出到CSV表格

  • 采样频率约100Hz

程序理论上支持OpenOCD所支持的各种调试器及硬件芯片如STLink、JLink、CMSIS-DAP等以及STM32全系列等

目前已测试STLink和CMSIS-DAP对STM32F103RCT6芯片的调试未发现问题

运行演示


使用方法

  1. 在下拉框中选择调试器和芯片类型选择Axf文件路径点击连接即可尝试连接芯片

  2. 在表格最后一行变量名处填写变量名可以添加查看变量选中变量名按Del键可以删除变量

变量名不仅可以填入单个变量名还可以填入合法的C语言表达式GDB支持即可复合类型不能修改和绘图只能实时查看

  1. 在选择窗口中可以查看所选Axf文件包含的变量名,也可以一键添加到编辑框或变量列表中

  2. 编辑修改变量列可以修改变量值,双击图线颜色列可以选择绘图颜色

基本操作

  1. 单击变量名列选中对应的变量,绘图窗口会加粗绘制波形,左下角会显示当前值和查看值(拖动鼠标进行查看)

  2. 绘图界面说明可以在绘图窗口点击操作说明查看,滚轮配合CtrlShiftAlt可以实现画面的缩放和移动

绘图操作


菜单项说明

  • 显示绘图窗口:手动关闭绘图窗口后可以通过这个菜单项重新打开绘图窗口并显示到前台

  • 刷新连接配置:连接配置文件位于openocd/share/openocd/scripts下的targetinterface用户可按照OpenOCD语法编写配置脚本放入对应目录下然后点击该菜单项将配置文件加载到下拉选框中

  • 保存配置软件中所配置的调试器型号、芯片型号、Axf文件路径和各变量的配置都可以通过该菜单项保存到一个配置文件中

  • 导入配置:将上述保存的配置文件重新载入软件中

  • 导出数据将获取到的各变量采样数据导出到CSV表格文件


使用注意事项

  • 若不指定Axf文件无法使用变量名只能通过绝对地址进行查看

  • 修改Axf路径后需要重新连接

  • 本程序不带下载功能,连接目标前请确认已为目标芯片下载过指定程序;若更换为不同类型的调试器,即使芯片程序没有变动,也应使用更换后的调试器再次下载程序


已知问题及解决方法

  • 若程序发生错误闪退,可能在下次运行时无法成功连接目标,可以尝试手动查找openocd.exe进程并强制结束

TODO

  • 将采样频率提升至约1kHz

  • 添加串口模式


运行过程简介

  • 连接目标时程序会在后台启动OpenOCD进程进行连接并命令GDB进程连接到OpenOCD

  • 运行过程中程序会不断模拟与GDB进程进行命令行交互在用户添加变量时使用display expr指令将变量添加到GDB的查看表中同时定时10ms发送display指令并进行正则解码,更新用户界面

  • 程序开有一个微秒级定时器,每收到一个变量采样数据时,会从该定时器获取当前的时间戳并与数据一起记录下来,同时绘图窗口会不断对历史数据进行更新绘图


仓库文件说明

  • 编译程序后需要将gdbopenocd复制到可执行文件同级目录下