1、 问题场景
在调试STM32F4系列的单片机时,keil无法通过SVD文件查看外设寄存器,常规的解决方法应该是在keil中添加SFR文件即可,但是ST各个系列的官方pack包中,有的给出了SVD和SFR,但是有的只给了SVD,没有给SFR,本文将讲述,如何生成一个SFR文件,问题场景如图1所示。
(当然,也可以使用调试参数控制来解决外设寄存器不显示的问题,但是,本文针对的场景,不单单只是为了显示一些外设寄存器,同时也是作为一种方法,给后续制作并使用SVD文件的工程师,提供一个解决方案思路)

图1
2、软硬件环境
1)、软件版本:MDK5.39
2)、电脑环境:Windows 10
3)、外设硬件:无
3、解决方法
1)、首先JNH官网需要用到uv4文件夹下的SVDConv.exe这个可执行程序。如图2所示:

图2
2)、但是这个软件是无法双击运行的,需要通过命令行执行。而且如果直接通过命令行调用,也是无法使用的,会提示没有该命令。因此JNH官网需要添加环境变量,具体操作如图3所示,将keil的UV4目录加入进环境变量中。

图3
3)、接着,就可以通过cmd进入pack包目录,执行SVDConv xxxx.svd --generate=sfr 如图4所示,这里JNH官网只转换一个F40x的svd文件作为演示。

图4
5)、转换成功之后,pack包里就会出现sfr文件,显示结果如图5所示。

图5
6)、然后在keil中,导入刚才转换好的sfr文件,如图6所示。

图6
7)、导入后,JNH官网来到调试界面,可以看到,外设寄存器全部出现了,如图7所示。

图7