硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2186|回复: 17
收起左侧

[OnlineDebug] H7-TOOL的CMSIS-SVD文件解析操作说明V1.0,直接读取各个IC厂家提供的SVD文件,像MDK,IAR在线调试实时检测外设(2023-12-04)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-7-26 07:29:42 | 显示全部楼层 |阅读模式
功能特性
1、TOOL可以实现这个功能的基础:SWD接口函数,读写各种类型数据,内存和寄存器等
2、MDK, IAR等在线调试有两个重要功能,一个是断点,单步调试等玩法。还有一个就是外设寄存器状态,内存数据等实时检测。我们本次要实现的是后者,当前TOOL就可以读写外设寄存器,但是需要看IC数据手册来获取外设地址,非常不方便。针对这个问题,IC厂家都有推出CMSIS-SVD文件,这个文件包含了所有外设寄存器地址,甚至每个寄存器每个bit的含义。所以TOOL能够解析这个文件,意义重大。
3、通过LUA小程序,我们可以离线,WiFi,以太网和USB四种玩法,且支持内网和外网远程。

CMSIS-SVD文件
当前整理了一大批厂家的CMSIS-SVD文件到TOOL软件包里面,不用大家自己找了,没有整理到的,后面再逐步添加,大家也可以直接使用自己电脑上带的。大部分厂家制作的CMSIS-SVD文件都是复合规范的。

128.png

操作说明

比如我们这里查看STM32F429BIT6的几个寄存器.

1、打开监视窗口

12.png

2、选择STM32F429的CMSIS-SVD文件

13.png

12.png

14.png

3、选择要监测的外设寄存器,含内核寄存器,都是可以监测的

添加滴答定时器的计数寄存器

12.png

添加串口状态寄存器

13.png

再添加个IDCode寄存器

13.png

4、生成脚本

12.png

5、开启监测

如果使用的是带Cache的内核,请勾上这个选项

12.png

执行单次刷新:

12.png

如果刷新不正常,可以考虑点击下这个执行脚本按钮来重新加载脚本

12.png

周期性刷新效果:

14.gif

5、高级脚本添加变量监测

比如想读取地址0x0800 0000的数据,那么就可以添加代码到高级脚本编辑框

[Lua] 纯文本查看 复制代码
 data, re = pg_read32(0x08000000)
  if(re == 1) then
    print("读取成功:")
    print_hex(data)
  else
    print("读取失败")
  end        


13.png

然后就可以刷新数据了

12.png









回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-7-26 07:30:29 | 显示全部楼层
现在已经有了初步的解析方式,正在测试验证中。
回复

使用道具 举报

7

主题

190

回帖

216

积分

高级会员

积分
216
发表于 2023-7-26 07:58:38 | 显示全部楼层
厉害,期待啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-7-28 01:59:07 | 显示全部楼层
可以罗列各个外设总地址了

下载 (7).png
回复

使用道具 举报

8

主题

155

回帖

179

积分

初级会员

H7 TOOL 大法好!

积分
179
发表于 2023-7-28 08:10:34 | 显示全部楼层
     真的太强了
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2023-7-28 15:28:26 | 显示全部楼层
牛。。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-7-29 00:13:23 | 显示全部楼层
每个外设的下的寄存器可以检索到了。

下载 (2).png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-7-30 00:19:32 | 显示全部楼层
全解析已经实现,下一步移植到上位机上


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-11-3 08:51:22 | 显示全部楼层
2023-11-03

初步增加效果:


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-11-6 02:22:54 | 显示全部楼层
2023-11-06

首版初步完工


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-11-9 08:47:21 | 显示全部楼层
2023-11-09

首版最终效果。


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-12-5 00:11:31 | 显示全部楼层
2.24版本固件正常增加,完成操作说明更新。
回复

使用道具 举报

5

主题

97

回帖

112

积分

初级会员

积分
112
发表于 2023-12-5 10:15:16 | 显示全部楼层
如果变量可以显示数组和结构体就完美了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2023-12-5 10:36:15 | 显示全部楼层
leng_qian 发表于 2023-12-5 10:15
如果变量可以显示数组和结构体就完美了。

对,合并到一起更好,当前暂时先在提供的高级脚本框架里面添加。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-12-23 14:57:59 | 显示全部楼层
eric2013 发表于 2023-12-5 10:36
对,合并到一起更好,当前暂时先在提供的高级脚本框架里面添加。

强烈需要此功能
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-1-5 15:17:34 | 显示全部楼层
STM32系列无法使用该功能
提示:
已装载SVD文件: STM32F103xx.svd
未搜索到<cpu>, 不是有效的svd文件
已装载SVD文件: STM32F105xx.svd
未搜索到<cpu>, 不是有效的svd文件
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2024-1-5 15:35:35 | 显示全部楼层
东方塞工 发表于 2024-1-5 15:17
STM32系列无法使用该功能
提示:
已装载SVD文件: STM32F103xx.svd

打开这个文件,加上内核型号即可,ST早期的一些SVD文件制作不规范,没有写内核型号。


1234.png
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-1-6 14:54:42 | 显示全部楼层
好的,十分感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 15:39 , Processed in 0.497663 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表