搜索
bottom↓
回复: 67

分享一个Cortex-M内核单片机外设寄存器查看、修改工具

  [复制链接]

出0入25汤圆

发表于 2019-2-15 15:19:31 | 显示全部楼层 |阅读模式

有时候不方便进入调试模式,但又需要查看单片机外设的寄存器的值,,所以就写了一个通过JLINK读取外设寄存器、然后根据SVD文件解析的小工具

通过这个工具,可以查看外设寄存器的值


查看外设寄存器位域的值


甚至是修改外设寄存器及其位域的值(单击寄存器或位域值)


源代码:https://github.com/XIVN1987/JSVDView,,欢迎mark

打包生成的exe免安装文件:










打包过程好像把样式文件给丢了,,所以打包后的程序界面有点儿丑,,不过不影响功能,,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入13汤圆

发表于 2019-2-15 15:27:42 | 显示全部楼层
谢谢分享,记得ST官方有个软件可以查看内存的,不知道能不能查看寄存器呢?

出0入0汤圆

发表于 2019-2-15 15:29:05 | 显示全部楼层
一直想用这个功能,最好是单片机运行中可以直接介入,而不需要让单片机复位,貌似jtag貌似必须复位才能读取寄存器,是不是这样?

出10入61汤圆

发表于 2019-2-15 15:33:44 | 显示全部楼层
请教下: 别人的板子 想看寄存器的值,能不能通过JLINK读出来

出0入25汤圆

 楼主| 发表于 2019-2-15 15:34:41 | 显示全部楼层
wx-ta 发表于 2019-2-15 15:29
一直想用这个功能,最好是单片机运行中可以直接介入,而不需要让单片机复位,貌似jtag貌似必须复位才能读取 ...


可以不用复位,,我这个工具里JLINK连接时没有复位芯片


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入25汤圆

 楼主| 发表于 2019-2-15 15:36:27 | 显示全部楼层
tcm123 发表于 2019-2-15 15:33
请教下: 别人的板子 想看寄存器的值,能不能通过JLINK读出来


只要JLINK能连上,,就能读

SVD文件单片机厂商都会提供的,,

我试过STM32F405、新唐的M482,,都没问题

出0入0汤圆

发表于 2019-2-15 15:43:28 | 显示全部楼层
谢谢分享,工具越来越多了。

出0入0汤圆

发表于 2019-2-15 17:25:14 | 显示全部楼层
qt 做的? qss 掉了?

出0入8汤圆

发表于 2019-2-15 17:34:15 | 显示全部楼层
不错,谢谢分享。

出0入25汤圆

 楼主| 发表于 2019-2-15 17:39:12 | 显示全部楼层
richards 发表于 2019-2-15 17:25
qt 做的? qss 掉了?


PyQt5做的,,据说是qwindowsvistastyle.dll文件没打包进去,,需要建spec打包才行,,我还没试

出0入0汤圆

发表于 2019-2-15 17:59:32 | 显示全部楼层
除了寄存器,能查看RAM的内容吗?

出0入0汤圆

发表于 2019-2-15 18:24:22 | 显示全部楼层
好像不行啊,你这个有限定 jlink_x64.dll的版本吗?

出0入0汤圆

发表于 2019-2-15 18:28:12 | 显示全部楼层
不如把你的dll共享上来吧,可能新版本的你的不支持

出0入25汤圆

 楼主| 发表于 2019-2-15 18:31:16 | 显示全部楼层
jlhgold 发表于 2019-2-15 18:24
好像不行啊,你这个有限定 jlink_x64.dll的版本吗?


对,限定x64版本的JLink_x64.dll,,因为我用的python 3是64位的

segger安装目录下两个版本的dll都有

出0入0汤圆

发表于 2019-2-15 21:45:43 | 显示全部楼层
感谢楼主分享,楼主全都是精品啊!

出0入0汤圆

发表于 2019-2-15 22:00:34 | 显示全部楼层
mark一个,谢谢分享

出250入8汤圆

发表于 2019-2-15 22:22:27 | 显示全部楼层
好帖,做个记号。

出0入0汤圆

发表于 2019-2-15 23:15:52 | 显示全部楼层
棒棒~~~~~~~~~~~~~~~

出0入0汤圆

发表于 2019-2-16 00:06:35 | 显示全部楼层
weiwei4 发表于 2019-2-15 15:27
谢谢分享,记得ST官方有个软件可以查看内存的,不知道能不能查看寄存器呢? ...

请问,按个工具叫什么名称,打算试试

出0入0汤圆

发表于 2019-2-16 06:32:06 来自手机 | 显示全部楼层
谢谢分享。。。。。

出0入0汤圆

发表于 2019-2-16 10:53:35 | 显示全部楼层
SVD文件解析,可有相关的资料?

出0入0汤圆

发表于 2019-2-16 11:04:25 | 显示全部楼层
谢谢分享  python jlink 软件越来越多啦

出0入0汤圆

发表于 2019-2-16 13:06:49 | 显示全部楼层
看着不错,谢谢分享

出0入0汤圆

发表于 2019-2-16 14:08:20 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2019-2-17 09:08:06 来自手机 | 显示全部楼层
很不错,谢谢分享

出0入0汤圆

发表于 2019-2-17 10:18:32 | 显示全部楼层
感谢分享,有机会试一下

出0入8汤圆

发表于 2019-2-17 12:20:25 来自手机 | 显示全部楼层
神器啊,谢谢

出0入0汤圆

发表于 2019-2-17 12:35:41 来自手机 | 显示全部楼层
XIVN1987 发表于 2019-2-15 15:36
只要JLINK能连上,,就能读

SVD文件单片机厂商都会提供的,,

偏门的单片机真没啥描述文件  新建工程只能选择cm3器件  然后提供个头文件  没有具体型号


能否介绍下这个svd文件格式

出0入0汤圆

发表于 2019-2-17 12:37:48 来自手机 | 显示全部楼层
XIVN1987 发表于 2019-2-15 15:36
只要JLINK能连上,,就能读

SVD文件单片机厂商都会提供的,,

Svd文件估计arm有官方文档  但是能否通俗给大伙科普一下结构和解析甚至自写

出0入0汤圆

发表于 2019-2-17 12:40:14 来自手机 | 显示全部楼层
tcm123 发表于 2019-2-15 15:33
请教下: 别人的板子 想看寄存器的值,能不能通过JLINK读出来

那样意味着别人板子没加密能直接导出bin

出0入0汤圆

发表于 2019-2-17 12:42:56 来自手机 | 显示全部楼层
布心 发表于 2019-2-15 17:59
除了寄存器,能查看RAM的内容吗?

读什么不过是地址问题  都可以  关键在于解析  一堆十六进制没法看  所以点在于自己定义描述文件描述内存内容  然后才能直观查看

出0入25汤圆

 楼主| 发表于 2019-2-17 12:56:06 | 显示全部楼层
huangqi412 发表于 2019-2-17 12:35
偏门的单片机真没啥描述文件  新建工程只能选择cm3器件  然后提供个头文件  没有具体型号


SVD文件其实就是个XML文件,,格式说明:https://www.keil.com/pack/doc/CMSIS/SVD/html/svd_Format_pg.html

解析的话应该有很多现成的库,,可以github上搜下,,

自己写SVD文件就没必要了,,这个是单片机厂家的活儿

出0入0汤圆

发表于 2019-2-17 13:54:02 来自手机 | 显示全部楼层
XIVN1987 发表于 2019-2-17 12:56
SVD文件其实就是个XML文件,,格式说明:https://www.keil.com/pack/doc/CMSIS/SVD/html/svd_Format_pg. ...

有些厂家真懒到没这个  只提供个头文件完事

出0入0汤圆

发表于 2019-2-17 19:06:38 | 显示全部楼层
看界面挺不错,下载试试

出0入0汤圆

发表于 2019-2-17 19:20:38 | 显示全部楼层
好工具。。。谢谢分享

出0入0汤圆

发表于 2019-2-18 08:33:45 | 显示全部楼层
XIVN1987 发表于 2019-2-15 18:31
对,限定x64版本的JLink_x64.dll,,因为我用的python 3是64位的

segger安装目录下两个版本的dll都有 ...

我用6.x版本的dll之后会提示如下图
估计还和你dll的版本有关

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-2-18 08:57:44 | 显示全部楼层
不错,谢谢分享。

出0入25汤圆

 楼主| 发表于 2019-2-18 09:11:12 | 显示全部楼层
jlhgold 发表于 2019-2-18 08:33
我用6.x版本的dll之后会提示如下图
估计还和你dll的版本有关


点击“OK”按钮,,然后根据你的芯片选择Cortex-M0、M3或M4内核应该就行了,,

或者装一个旧版本的SEGGER,,下载链接:https://www.segger.com/downloads/jlink/Setup_JLink_V502k.zip

出0入0汤圆

发表于 2019-2-18 09:11:49 | 显示全部楼层
不错,留名备用

出0入0汤圆

发表于 2019-2-18 09:35:34 | 显示全部楼层
XIVN1987 发表于 2019-2-18 09:11
点击“OK”按钮,,然后根据你的芯片选择Cortex-M0、M3或M4内核应该就行了,,

或者装一个旧版本的SEGG ...

主要是选不了,全是空白的,就像这样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-2-18 09:44:36 | 显示全部楼层
Cortex-M内核单片机外设寄存器查看

出0入25汤圆

 楼主| 发表于 2019-2-18 11:09:52 | 显示全部楼层
本帖最后由 XIVN1987 于 2019-2-18 11:11 编辑
jlhgold 发表于 2019-2-18 09:35
主要是选不了,全是空白的,就像这样



确实有问题,,是因为我之前一直用的Python2,,现在换到Python3,,给JLINK发送命令时需要使用bytes,不能再是str,,所以需要编码一下,,即将原来的:

改成:


修改后的打包文件:










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-2-18 11:36:56 | 显示全部楼层
本帖最后由 Excellence 于 2019-2-18 11:41 编辑
XIVN1987 发表于 2019-2-18 11:09
确实有问题,,是因为我之前一直用的Python2,,现在换到Python3,,给JLINK发送命令时需要使用bytes, ...


楼主,你好。以前的RTT有打算用PY3改写吗?


Python实现RTT客户端
https://www.amobbs.com/forum.php ... amp;_dsign=a6160d31

出0入0汤圆

发表于 2019-2-18 12:11:32 | 显示全部楼层
知道有个nxp的 FreeMaster,应该和这个差不多

出0入0汤圆

发表于 2019-2-18 12:20:55 | 显示全部楼层
支持楼主

出0入25汤圆

 楼主| 发表于 2019-2-18 12:32:50 | 显示全部楼层
Excellence 发表于 2019-2-18 11:36
楼主,你好。以前的RTT有打算用PY3改写吗?


暂时没打算

新的尽量用Py3写,,旧的维持现状,,

出0入0汤圆

发表于 2019-2-19 10:45:06 | 显示全部楼层
看着不错,谢谢分享,后面应该会用到

出0入0汤圆

发表于 2019-2-20 15:39:33 | 显示全部楼层
对这个真的比较佩服了,能沉下心来实现已经不简单了。

出0入0汤圆

发表于 2019-2-20 15:54:26 | 显示全部楼层
谢谢楼主共享!

出0入4汤圆

发表于 2019-2-22 10:52:04 | 显示全部楼层
谢谢楼主的分享!

出0入0汤圆

发表于 2019-2-22 21:34:53 来自手机 | 显示全部楼层
谢谢楼主的分享

出0入0汤圆

发表于 2019-2-22 22:15:51 | 显示全部楼层
感谢楼主分享,辛苦了!!!

出0入0汤圆

发表于 2019-2-23 07:24:13 来自手机 | 显示全部楼层
这个必须要收藏了

出0入0汤圆

发表于 2019-2-24 14:29:49 | 显示全部楼层

请教一下如何使用,进入MDK 5 跑吗

出0入25汤圆

 楼主| 发表于 2019-2-24 15:31:00 | 显示全部楼层
jxchen 发表于 2019-2-24 14:29
请教一下如何使用,进入MDK 5 跑吗


不需要MDK,,连上J-Link,,指定正确的DLL和SVD路径就可以,,

出0入8汤圆

发表于 2019-3-8 03:40:45 来自手机 | 显示全部楼层
你这个是不是通过掉dll读内存和寄存器地址实现的  

出0入8汤圆

发表于 2019-3-8 05:47:16 来自手机 | 显示全部楼层
很多只有ddf文件,没svd文件,怎么用?两种格式可以转换么?

出0入0汤圆

发表于 2019-3-8 08:12:05 | 显示全部楼层
這個讚,謝謝分享!

出1310入193汤圆

发表于 2019-3-8 08:33:31 | 显示全部楼层
Cortex-M内核单片机外设寄存器查看、修改工具 mark

出0入25汤圆

 楼主| 发表于 2019-3-8 08:53:03 | 显示全部楼层
justdomyself 发表于 2019-3-8 03:40
你这个是不是通过掉dll读内存和寄存器地址实现的


对,就是读外设寄存器那块的内存(对于JLink,内存和外设寄存器是一样的),,然后根据SVD文件描述的格式解析这些数据然后格式化显示

出0入25汤圆

 楼主| 发表于 2019-3-8 08:56:35 | 显示全部楼层
icoyool 发表于 2019-3-8 05:47
很多只有ddf文件,没svd文件,怎么用?两种格式可以转换么?


不提供svd的单片机应该很少见,,只要提供Keil PACK的应该都有SVD文件,,

出0入0汤圆

发表于 2019-3-8 09:52:31 | 显示全部楼层
这个工具不错先收下了,谢谢楼主

出0入8汤圆

发表于 2019-3-8 10:06:08 | 显示全部楼层
XIVN1987 发表于 2019-3-8 08:56
不提供svd的单片机应该很少见,,只要提供Keil PACK的应该都有SVD文件,,

好吧, 我比较鄙视Keil, 一直用的IAR, IAR只有DDF,, 我去KEIL官网找找吧, 谢谢啦

出0入25汤圆

 楼主| 发表于 2019-3-8 11:22:46 | 显示全部楼层
icoyool 发表于 2019-3-8 10:06
好吧, 我比较鄙视Keil, 一直用的IAR, IAR只有DDF,, 我去KEIL官网找找吧, 谢谢啦


如果你确实不想用Keil的话,,只需要去下载Keil Pack包,,然后把后缀名由.pack改成.zip,,然后解压,,从其中取出.svd文件使用即可

出5入0汤圆

发表于 2021-4-13 08:49:27 | 显示全部楼层
本帖最后由 gnail092 于 2021-4-13 08:51 编辑
XIVN1987 发表于 2019-3-8 11:22
如果你确实不想用Keil的话,,只需要去下载Keil Pack包,,然后把后缀名由.pack改成.zip,,然后解压, ...


楼主,为什么keil4没有这个SVD文件,只找到这个SFR文件,还有这两个文件有什么区别

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入25汤圆

 楼主| 发表于 2021-4-13 09:02:51 | 显示全部楼层
gnail092 发表于 2021-4-13 08:49
楼主,为什么keil4没有这个SVD文件,只找到这个SFR文件,还有这两个文件有什么区别 ...


Keil好像不直接使用SVD,,它直接使用的是SFR

所以Keil5安装pack的时候会把pack里的svd文件转成sfr文件

出5入0汤圆

发表于 2021-4-13 09:22:38 | 显示全部楼层
XIVN1987 发表于 2021-4-13 09:02
Keil好像不直接使用SVD,,它直接使用的是SFR

所以Keil5安装pack的时候会把pack里的svd文件转成sfr文件 ...

我用的一颗国产MCU只提供了sfr文件的,那这个文件不行是吧

出0入25汤圆

 楼主| 发表于 2021-4-13 09:28:42 | 显示全部楼层
gnail092 发表于 2021-4-13 09:22
我用的一颗国产MCU只提供了sfr文件的,那这个文件不行是吧


不行,,

SFR好像是二进制文件,,具体格式只有Keil自己知道
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 09:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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