第1 页共15 页Keil MDK 版本比较总结SunriseQQ:2790468432013.31、 MDK 版本:V4.22V4.53V4.62、 内核比较:图 1MDK4.22 内核第2 页共 15 页图 2 M DK4.53 内核第3 页共15 页图3 MDK4.6 内核由以上MDK 内核比较看出,4.22 和4.53 的C 编译器(C Compiler),汇编器(Assembler),链接/定位器(Linker/Locator),库文件基本一致,都是V4.1.0.x x x ,相当于4.53 是在4.22 上的改进。而4.6的这些内核都已经升级到了V5.0.x x .x .x x ,这说明较之以前的版本,其内核已经做了重大升级。3、 配色:4.6 沿用了4.53 的版本,但较之4.22 版本做了调整。4、 配置的C/C++选项卡:由下图中的红框可见 4.6 的改进。第4 页共 15 页图 4M DK4.22 C/C++选项卡第5 页共 15 页图 5M DK4.53 C/C++选项卡第6 页共15 页图6M DK4.6 C/C++选项卡5、编译效率本人找了个一般的液晶程序,分别用这三个版本编译做了比较:由下面的截图可见,4.22 的代码尺寸比后面的两个都稍大,说明后续改进的版本确实提高了编译效率。但这种优化改进是否对程序执行效果产生什么影响本人没有进一步测试,但就本程序看来没什么问题。图7M DK4.22 编译结果第7 页共15 页图8MDK4.53 编译结果图9MDK4.6 编译结果6、 器件支持与库资源这里面是需要关心下的,即便是你在新版本中找到了你想要的芯片型号,也不意味着你能顺利将旧版本的程序移植到新版本。本人在测试 STM32F103 时就发现这一问题。我们首先来看看 MDK 各版本的ST 意法半导体库发生了什么变化,见图10。由此可见,4.53 比 4.22 支持的器件类型多了 STM32F0xx系列,而 4.6 又比 4.53 增加了 STM32F30x/37x/W108xx 三个系列。所以,如果选型的芯片是旧版本中没有的,那就得尝试用新版本的 MDK 了。但是在使用 STM32F103 从 4.22 移植到 4.53 和 4.6 时,却发生了编译无法通过的问题,发生的错误提示是“找不到相应的库文件”,相信这点很多朋友都遇到过,究其原因,是因为后两者的库文件发生了改变!见图11。对比发现,4.53 和 4.6 的 STM32F10x 库竟然比 4.22 少了好多!这就是版本移植时编译失败的原因所在。所以,为了解决这个问题,要么,你将 MDK退回到较低的版本,如 4.22,只要有你要的那款芯片;要么,你将 4.53 或 4.6 中缺少的库文件,从 4.22中拷贝进去,这样就没问题了。另外还要注意一点,这三个版本中的重名文件...