问题
因学习的需要,电脑会同时安装MDK-ARM v4.x(Keil uVision4) 、 MDK-ARM v5.x(Keil uVision5)、C51(Keil uVision5)。但是由于 Keil uVision5 是直接由 Keil uVision4 升级而来,ARM公司在升级上不知道到咋考虑的(Keil 5 文件名竟然还是Keil 4),如果同时安装时,后安装的Keil版本会把之前安装的Keil版本的文件关联给覆盖掉。 这就导致了不同版本的项目无法通过双击使用正确的 Keil 版本打开。
在之前的文章ARM 之 Keil 项目/生成的各种文件类型(.AXF、.D、.crf)说明中已经说过,Keil uVision4 与 Keil uVision5 的项目文件是彼此独立的。那么从理论上来说,两者是可以相互独立的!
C51 和 MDK-ARM
由于目前最新版 C51 和 MDK-ARM v5.x 均使用了 Keil uVision5 作为IDE。在安装时这俩的默认路径是一样的(C://Keil_v5),ARM公司在这方面应该是已经考虑到共存问题,直接安装在同一目录下即可共存。
两部分是相互独立目录,共同使用UV4
(Keil uVision5中文件名没有改名)。那么两者具体如何区分呢?其实就是通过目录下的 TOOLS.ini
来加载各部分的配置的。
当然,也可以将两者分别安装到不同的目录下,然后将两部分的TOOLS.ini
进行合并。具体这里就不多说了。
以上处理过后,在建立项目时,可以直接选择使用C51还是MDK,如下图
- 由于环境原因,未测试 两者均为旧版本(Keil uVision4)时的兼容情况!理论上来说也是直接安装在同一目录即可。
- 如果先安装C51再安装MDK的情况未测试。
Keil uVision4 和 Keil uVision5
两者的共存问题主要通过修改注册表来实现。具体键值的位置\HKEY_CLASSES_ROOT\UVPROJFILE
见下图即可
按照上图的注释,将对应版本的Keil关联文件修改为自己的目录位置就可以了。注意的是,修改完后需要重新才会有效果
注意:需要重启才会刷新图标
- 以上情况针对先安装了Keil uVision4 后安装 Keil uVision5。如果安装顺序倒过来是否会出现问题,暂未测试!但是处理方法是一致的。
- 初次安装后有可能遇到没有有效关联启动程序,及时重启也无效。这似乎是Windows的bug。这时直接双击项目文件,Windows会出现选择打开的程序界面,并且推荐就是Keil,选择一下就正常了!
参考
- Keil 官网