1、 問(wèn)題場(chǎng)景
在調(diào)試STM32F4系列的單片機(jī)時(shí),keil無(wú)法通過(guò)SVD文件查看外設(shè)寄存器,常規(guī)的解決方法應(yīng)該是在keil中添加SFR文件即可,但是ST各個(gè)系列的官方pack包中,有的給出了SVD和SFR,但是有的只給了SVD,沒(méi)有給SFR,本文將講述,如何生成一個(gè)SFR文件,問(wèn)題場(chǎng)景如圖1所示。
(當(dāng)然,也可以使用調(diào)試參數(shù)控制來(lái)解決外設(shè)寄存器不顯示的問(wèn)題,但是,本文針對(duì)的場(chǎng)景,不單單只是為了顯示一些外設(shè)寄存器,同時(shí)也是作為一種方法,給后續(xù)制作并使用SVD文件的工程師,提供一個(gè)解決方案思路)

圖1
2、軟硬件環(huán)境
1)、軟件版本:MDK5.39
2)、電腦環(huán)境:Windows 10
3)、外設(shè)硬件:無(wú)
3、解決方法
1)、首先我們需要用到uv4文件夾下的SVDConv.exe這個(gè)可執(zhí)行程序。如圖2所示:

圖2
2)、但是這個(gè)軟件是無(wú)法雙擊運(yùn)行的,需要通過(guò)命令行執(zhí)行。而且如果直接通過(guò)命令行調(diào)用,也是無(wú)法使用的,會(huì)提示沒(méi)有該命令。因此我們需要添加環(huán)境變量,具體操作如圖3所示,將keil的UV4目錄加入進(jìn)環(huán)境變量中。

圖3
3)、接著,就可以通過(guò)cmd進(jìn)入pack包目錄,執(zhí)行SVDConv xxxx.svd --generate=sfr 如圖4所示,這里我們只轉(zhuǎn)換一個(gè)F40x的svd文件作為演示。

圖4
5)、轉(zhuǎn)換成功之后,pack包里就會(huì)出現(xiàn)sfr文件,顯示結(jié)果如圖5所示。

圖5
6)、然后在keil中,導(dǎo)入剛才轉(zhuǎn)換好的sfr文件,如圖6所示。

圖6
7)、導(dǎo)入后,我們來(lái)到調(diào)試界面,可以看到,外設(shè)寄存器全部出現(xiàn)了,如圖7所示。

圖7