在某处看到有人写了用keil和Proteus8联调STM32F单片机(作者只说了基本方法,提供例证),为方便学生调试程序,今天测试了一下,发现该网文中的方法是个骗局,因为Proteus8已不再支持VDMARM.DLL。但是这一折腾,将keil根目录下的tools.ini文件折腾出问题了,没必要重装MDK,修改tools.ini文件吧。
在装有MDK5.38中安装了的Proteus和KEIL结合工具:vdmagdi.exe。安装完成后,启动MDK-ARM(Keil)时悲剧了,弹出如下对话框:
>>> TOOLS.INI - Section '[undefined toolset]': missing 'PATH' entry ! <<<
没安装C51的用户,还会多一行出现下面的提示:>>>TOOLS.INI-Section ‘[C51]’:missing ‘PATH’ enty! <<<
解决方法为:在 Keil安装目录下,找到tools.ini
右键用记事本打开tools.ini,发现Proteus和KEIL结合工具vdmagdi在文件末尾添加了[KARM]项,见下图:
打开keil时出现错误对话框:>>> TOOLS.INI - Section '[undefined toolset]': missing 'PATH' entry ! <<< 。原因是没有制定ARM路径,如下图添加路径:
就可以打开Keil了,接着按网文中的方法修改TDRV、CPUDLL0、CPUDLL1,尝试与Proteus 8.15联调STM32F单片机,测试发现网文有问题,于是卸载vdmagdi联调工具,卸载后打开keil,仍然提示错误对话框:>>> TOOLS.INI - Section '[undefined toolset]': missing 'PATH' entry ! <<< 。再次打开tools.ini,发现卸载清理不干净,见下图:
删除[KARM](上图红圈中内容),保存tools.ini,重新打开MDK-ARM! ^_^Enjoy!
后记:虽然Proteus 8不能与keil联调STM32,但是可以将hex文件装载到芯片中仿真运行。Proteus仅适合初学者练手,要想学会真功夫,您还得用开发板,Bluepill才十多块钱,自己配一些外围器件,入门成本不高。