Keil MDK和IAR 两款ARM开发工具对比

2020-08-02来源: elecfans关键字:Keil  MDK  IAR  ARM  开发工具

首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势。对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是赞美自己的选择。


好了,下面开始讲Keil MDK-ARM和IAR的区别。


一、概述

Keil MDK-ARM(旧称RealView MDK)开发工具源自德国Keil公司,被全球上百万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。


KEIL MDK集成了业内最领先的技术,包括uVision3、uVision4、uVision5集成开发环境与 ARM编译器。支持ARM7、ARM9、Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4、Cortex-R4内核核处理器。


Keil MDK可以自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,ARM编译器的最新版本可将性能改善超过20%以上。
  
IAR Embedded Workbench是一套用于编译和调试嵌入式系统应用程序的开发工具,支持汇编、C++和C++语言。它提供完整的集成开发环境,包括工程管理器、编辑器、编译链接工具和C-SPY调试器。IAR Systems以其高度优化的编译器而闻名。每个C/C++编译器不仅包含一般全局性的优化,也包含针对特定芯片的低级优化,以充分利用您所选芯片的所有特性,确保较小的代码尺寸。IAR Embedded Workbench能够支持由不同的芯片制造商生产,且种类繁多的8位、16位或32位芯片。


二、区别

1、MDK不支持层叠文件夹,在文件夹的下一级中必须为文件;IAR支持层叠,可以比较方便管理代码,理清层次。

            Keil MDK和IAR 两款ARM开发工具对比

2、MDK连接library,直接添加到文件夹即可;IAR则需要从工程中选项中设置。这应该不算什么问题,毕竟大多数IDE都是这么做的,但最让人很郁闷的是,IAR不能采用相对路径。比如../MUF/MUF.LIB在编译时,就会连接到别的目录,只能采用d:/MUF/MUF.lib绝对路径的形式。

3、 MDK支持dynamic_cast<>运算符,而IAR文档中明确表示不支持。如果在IAR中强行使用该运算符,则编译会报错:

Error[Pe020]: identifier "dynamic_cast" is undefined


4、MDK默认只创建工程,工作区是不会直接创建。如果想多个工程聚合,则首先需要创建一个multi的工作区,然后再添加相应的工程。  IAR,默认是创建工程和工作区,如果想多个工程并存,直接添加即可。  相比之下,MDK创建工程的文件比较少,而IARM创建工程生成的文件比较多。


5、MDK编译时,只有level的选择;IAM有debug和Release的快速选择


6、默认状态,MDK的工具栏功能比较多,有点繁杂;IAM的比较简洁,但相对,也比较单薄。


7、MDK的C++有std::这个命名空间;IAR下面的所有容器和算法,都不采用std命名空间


8、MDK的程序文件,最后必须要有一个新的空行,否则会有编译警告:

warning:  #1-D: last line of file ends without a newline

一般来说,如果主要是采用C,并且也不会有太多的library需要连接,MDK和IAR都能胜任。不过这种情形就比较推荐IAR,因为其非常简洁,上手也快,代码层次也能清晰明了。
  
如果主要是采用C++,并且用到很多特性,或是需要有多个工程进行协作,那么注定只能选择MDK,只不过这样就一定要每个文件最后加上新的空行了。

关键字:Keil  MDK  IAR  ARM  开发工具 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic504983.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ARM架构常用术语解析
下一篇:嵌入式ARM如何中断调试

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

学51单片机-KEIL的使用与程序的下载
,废话少说,开始!      先说keil uvision,第一步,双击打开该软件,界面如下:      写代码的话,需要新建一个工程,点击:Project->New uvision project ,弹出如下界面:      为每个工程建立一个单独的文件夹,例如LED01, 然后输入工程名,可以与文件夹名称相同,例如 LED01. 点击保存。      注:这个软件不需要考虑中英文路径的问题,印象里调试CPLD的时候,用的软件生成的工程,保存在中文路径下会出
发表于 2020-07-23
学51单片机-<font color='red'>KEIL</font>的使用与程序的下载
LPC2138+LCD12864显示实时时钟程序 keil与proteus联调
近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。32位嵌入式系统发展很快,32位单片机已逐渐占领8位机的市场,并以很高的性价比赢得了越来越多的用户的青睐。随着科技和工艺的进步,32位单片机的优势会更加突显出来,将会成为嵌入式系统的主流。在32位嵌入式系统中,基于ARM的应用占据了大部分份额。实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的
发表于 2020-07-12
LPC2138+LCD12864显示实时时钟程序 <font color='red'>keil</font>与proteus联调
keil5中找不到lpc2368的解决方法
在用lpc2368的时候在MDK5 Software Packs找不到lpc236在官网搜寻了一番找到了这个下载后完美解决问题
发表于 2020-07-03
<font color='red'>keil</font>5中找不到lpc2368的解决方法
stm32 keil中出现use of undeclared identifier' '的原因
出现这种情况,一般有以下几种原因:1.变量未定义2.未包含头文件3.编译路径未包含该文件地址
发表于 2020-07-03
stm32 <font color='red'>keil</font>中出现use of undeclared identifier' '的原因
Keil MDK5项目建立步骤及可能出现的错误解决方法
的内容。-pSTM32F103ZE是我们选择的芯片型号.关于无法动态语法检查,这个问题曾经困扰我很久,如果不是如图所示勾没打上,那么就是你的项目工程文件夹包含中文路径了另一个经常出现的问题就是软件仿真时,单步进行总是跳到反编译区,或者是跳到启动函数中,对于这个问题。1.首先如果进入反编译去那么有可能command区有错误提示2.如果进入启动函数那么可能debug中没有设置Run to mian3.第一次单步运行正常,运行后复位,又跳转到启动函数中。对于这个问题我也没有太好的解决方法,只能是手动在main函数中打节点,然后用运行到指针处再单步运行即可。对于Keil MDK5来说,如下图所示C/C++标签中,Define无需提交芯片宏
发表于 2020-07-03
Keil <font color='red'>MDK</font>5项目建立步骤及可能出现的错误解决方法
keil MDK编译器警告和错误详解
工作后从单片机转成ARM,刚开始用ADS1.2编译器,用了一段时间,因为我接手的项目的老程序正是用ADS编译的,部门也大都在用.在学单片机的时候用的是keil c51编译器,ads和这个编译器在易用性上真是无法比较.后来渐渐知道keil已经被arm公司收购,现在keil MDK成为了arm官方编译器,所以决定重新投奔keil,利用平时的时间,将原程序重新用mdk编译.mdk的优点就没必要说了,在这里把平时遇到的编译器给出的警告和错误信息给出详解,希望给初学者一点帮助,发现错误,需要补充的欢迎留言. 1.warning:  #550-D: variable “d” was set but never used描述
发表于 2020-07-03
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved