Comparison between IAR and MDK

Source: Internet
Author: User

// ================================================ ====================================
// Title:
// Simple comparison between IAR and MDK
// Author:
// Norains
// Date:
// Friday 11-December-2009
// Environment:
// MDK 4.0.2
// The IAR 5.40
// ================================================ ====================================

Many embedded engineers are familiar with MDK and Iam. It is estimated that many people will have one on their computers. But for cainiao, it may be a bit confusing how to select the two. This article is intended to solve this confusion and be born with potential.
Before starting the article, let us explain that this article is intended for people who have never touched the two development tools. Therefore, we only need to compare some superficial things and make it more in-depth, for example, neither compilation quality nor development efficiency is involved.
The first is the introduction of the two. The content is directly copied from the official website.
Realview microcontroller Development Kit (realview MDK)
Realview MDK development tool originated from Keil, Germany. It is verified and used by more than 0.1 million of embedded development engineers worldwide. It is the latest software development tool released by arm for various embedded processors. Realview MDK integrates the industry's most advanced technologies, including μvision3 integrated development environment and realview compiler. Supports ARM7, ARM9 and the latest Cortex-M3 core processor, automatic configuration startup code, integrated flash burning module, powerful simulation equipment simulation, performance analysis and other functions, compared with the analyticdb toolkit earlier than arm, the latest version of realview compiler can improve performance by more than 20%.
IAR embedded workbench
IAR embedded workbench is a set of development tools for compiling and debugging embedded system applications. It supports compilation, C, and C ++ languages. It provides a complete integrated development environment, including the Engineering Manager, editor, compilation link tool, and C-SPY debugger. IAR systems is famous for its highly optimized compiler. Each C/C ++ compiler not only includes general global optimization, but also low-level optimization for specific chips to take full advantage of all the features of your selected chip and ensure a small size of code. The IAR embedded workbench supports a wide range of 8-bit, 16-bit, or 32-bit chips produced by different chip manufacturers.
Before comparison, describe the following software versions:
MDK: 4.02.
IAR: 5.40
1. MDK does not support stacked folders, which must be files at the lower level of the folder. IAR supports stacking to facilitate code management and clarify layers.


2. Connect the MDK to the library and add it directly to the folder. For IAR, you need to set it from the options in the project. This should not be a problem. After all, most ides do this, but the most depressing thing is that IAR cannot adopt relative paths. For example, when ../MUF. Lib is compiled, it will be connected to another directory and can only be in the form of D:/MUF. Lib absolute path.


3. The MDK supports the dynamic_cast <> operator, which is explicitly not supported in the IAR document. If you use this operator in IAR, an error is returned during compilation:
Error [pe020]: identifier "dynamic_cast" is undefined


4. By default, MDK only creates a project, but does not directly create a workspace. If you want to aggregate multiple projects, you must first create a multi workspace and then add the corresponding project. IAR. By default, projects and work zones are created. If you want multiple projects to coexist, add them directly. In contrast, MDK creates fewer project files, while iarm creates more project files.


5. During MDK compilation, only the level option is available. Iam has a quick choice of debug and release.


6. The default status. The MDK toolbar has many functions and is a little complicated. The Iam is concise, but relatively thin.


7. The C ++ of MDK has STD: This namespace. All containers and Algorithms in IAR do not use STD namespaces.


8. The MDK program file must end with a new blank line. Otherwise, a compilation warning will be reported:
Warning: # 1-D: last line of file ends without a newline

Generally, if C is used, and there is not much library to connect, MDK and IAR are competent. However, IAR is recommended in this case, because it is very simple and quick to get started, and the code level is clear and clear.
If C ++ is used and many features are used, or multiple projects are required for collaboration, MDK is the only choice, in this way, you must add a new blank line at the end of each file.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.