01 

前言
说起Keil、IAR,你可能觉得这种集成开发环境界面比较古老,又不好用。但这里告诉大家一个事实:不管是单片机初学者、还是开发者,使用Keil和IAR的占比相对其他工具都要高,而且,不止高一点点
试问一下,这里做单片机开发的朋友,有多少人没有接触过 Keil 或者 IAR ?
据不完全统计,初学单片机的人,90%以上的人都会接触 Keil 或者 IAR。同时,很多工作十年以上的老工程师,长期坚持用Keil作为主力工具。
其实,还有一个现象可以说明Keil和IAR是单片机的主力开发工具,那就是很多MCU厂商推荐使用的IDE,或者提供代码例程就是Keil,或者IAR的工程,特别是国产32位MCU(这里自己去官方可以得到答案)。
02 

选择Keil,还是IAR?
上面说了Keil、IAR是目前主流的单片机集成开发环境,那么该选择Keil,还是IAR呢?
我的答案是:你两个都安装来用一段时间,你觉得哪个更适合你,或者说你用哪个更顺手,就用那个。
我的原则是:没有最好,只有适不适合。
但是有一点,在做出选择之前,需要自己多去了解,多去尝试。你没有尝试怎么知道究竟适不适合你呢?

这里说回Keil、IAR选择的问题,从我观察和了解的情况:选择Keil比选择IAR的人更多
不管是后台消息,还是微信交流群或私信,讨论更多的还是关于Keil的内容,讨论IAR的内容相对更少。
也就是说,目前整体情况是:Keil相比IAR更受欢迎
03 

Keil为何比IAR更受欢迎?
Keil 和 IAR 都是目前开发单片机的主流IDE,但两者一对比,Keil还是胜过IAR,我这里分析有以下几点原因。
1、Keil 更适合初学者
单片机初学者很大一部分是从51学习过来的,而Keil C51又是C51单片机的最佳选择,从而一大批初学者选择了Keil,以至于工作之后继续使用Keil作为主力开发工具。
同时,这批初学者在使用32位单片机(比如:STM32、GD32)也把Keil作为主力发开工具。
2、Keil 安装文件更小
Keil和IAR针对不同类型的单片机有不同版本的软件,Keil有四种:C51、C251、C166、MDK等。IAR更多:EW8051、EWAVR、EWMSP430、EWSTM8、EWARM等多种。
但是,不管那个版本,通过“横向对比”,不管是安装包、安装时间、安转后占用硬盘空间,Keil都更胜一筹。
Keil安装包更小:
但是,同类型软件的安装文件,Keil会更小。比如针对51的最新版本的Keil C51 V9.61只有104M,而IAR EW8051 V10.40却有421M。
同样,其他版本,比如:Keil MDK V5.38a 只有887M,而IAR EWARM V9.40.1却有1.61G大小。

Keil安装时间更短:
安装时间没办法量化,不同配置电脑都有差异。
但在同一台电脑上,通过对比安装时间,Keil 和 IAR 安装的时间有明显差异,特别是ARM版本软件,比如最新版的Keil MDK V5.38a可能只要2分钟就安装完成了,而最新版的IAR EWARM V9.40.1可能10分钟都还安装不完成。
Keil安装后文件更小:
不只是安装包更小,Keil安装之后所占用的文件(文件夹)也更小。特别是对于ARM版本的软件,比如:Keil MDK V5.36安装后文件只占用2.7G硬盘,而IAR EWARM V9.30却占用了8G空间。
3、Keil 对电脑配置要求更低
如果你拿出10年前的电脑,使用 Keil 还能勉强应急一下,但是,IAR就有点难以忍受了。
当然,这里指的是同等情况下(安装同一时期的软件),比如:使用Keil MDK V5.30 和 IAR EWARM V8.50,你会发现使用 IAR EWARM时,CPU占用率会飙升,然后风扇会让你难受。
4、Keil调试更方便
要说调试,像STM32、GD32这种ARM内核的芯片,如果Keil MDK敢说第二,我觉得没有谁会说第一。
为什么呢?因为Keil和STM32都是ARM的“亲儿子”,当然,可能极少、个别调试功能/组件,其他工具会好一点,但整体而言,Keil 的调试功能还是更好。
当然,IAR的调试功能,相比其他很多厂商工具的调试功能也不弱,至少绝大部分常用功能都还可以。
5、Keil兼容性更好
这里还是拿Keil MDK 和 IAR EWARM作对比。
你会发现:用 Keil 高版本的软件打开低版本的工程文件,基本没什么问题。比如:用Keil MDK V5版本软件,打开V4版本的软件,可以直接打开。官方做了兼容,只需要点击“迁移”即可。
而IAR EWARM,跨大版本之后,打开各种问题,特别是前些年从V6、V7、V8这种跨越大版本的情况下。
当然,Keil也存在兼容性问题的情况,但整体而言,没有IAR那么多问题。
最后,欢迎大家留言讨论:你选择Keil,还是IAR呢?原因是什么?
继续阅读
阅读原文