1.前言
自从更新了keil,用的是越来越不顺手了,一会是cannot evaluate,一会是与强制与cubemx强制联系了,这次也是的(地铁,老人,手机)折腾了一下总是搞好了(网上的解法只能说有用,但不是完全有用)。
2.解决思路
首先是网上最普遍的讲法,改改魔术棒啊,添加一下sfr文件啊。但是不知道从哪个版本开始cmsis里面没有自带的sfr文件了(啊这。。。)
那我们得自己生成SFR文件了,找了一圈总是从官方的说法里找到一点线索,链接在这。
µVision User's Guide (arm.com)
这里我以F407举例了,首先我们的调试文件在这个目录下,自带的是svd文件
我们需要用到svdconv.exe这个东西,目录程序在uv4这个文件夹下面
但是莫着急,这软件是双击无法运行的,是要通过命令行执行的。但是如果直接调用命令行是无法使用的,会提示没有该命令,我们需要添加环境变量。
先点击环境变量
在用户变量里找到Path,把UV4的目录添加进去。
然后我们打开,SVD目录,右击,选择在终端打开
输入官方说的命令,对你想要的文件进行转换
SVDConv ARM_Sample.svd --generate=sfr
比如转换407的svd文件,即 STM32F40x.svd。就像下图这样写
输入回车就会出现这样的东西
然后文件夹中SFR就出现了
我们回到keil,可以看到能正常识别到了。
然后进行仿真
可以看到,外设正常出来了。
至此就可以愉快得玩耍了~~
3.结语
网上关于这个问题讨论的都很多,但是有用的真的特别少,所有回答真是一个模板刻出来的,能解决实际问题的真的一个比一个少,哎。