ARM development - KEIL (MDK) vs. IAR (EW)

Apr 03, 2011 21 Replies

Hi all,



I have browsed the web for recent experience reports on KEIL MDK and IAR Embedded Workbench. The posts that I found are quite outdated, so I thought I start a new thread here.


I will need to buy one of those products sometime soon and I am curious about your experience with one OR/AND the other. What do you like about it, what are the weak points? I am completely aware that this questions is a little bit like "iPhone" vs. "Android" but I find it hard to decide and any suggestions will help.


There are free (size limited) version of both environments and I am having a first look, but this takes time and additionally I need to buy a JTAG probe to get the real feel of the IDEs in action.


I appreciate your input. Cheers.


--------------------------------------- Posted through

formatting link


I'd add Rowley's CrossWorks to the list. I don't believe that they offer a time-unlimited free version but one does get 30 days to evaluate the full suite. It also supports quite a range of JTAG adapters, including the relatively inexpensive ones from Olimex.

Likes: Works pretty well. Has include files/packages for more ARM-core processors than I knew existed. Supports serial wire debug (SWD) mode.

Dislikes. Wish that the text editor had a vi mode!

#disclaimer: just a customer.

Rich Webb Norfolk, VA

I worked for a company that used the IAR for a while and the optimisation of the code that it produced was absolutely rubbish compared to the ARM compiler (that every previous company had used).

They soon swapped!

The ARM complier isn't that expensive. For a single seat you will not regret the small up front extra costs

tim

I can't comment much on either of these, but you should be aware that there are a number of other alternatives. Someone else has mentioned Rowley - I'd add CodeSourcery and Code Red to the list of tools you should try.

You really should try out the tools yourself - asking other people will just get you personal opinions. You can get a good impression from using them without a board or a jtag debugger - they all have some sort of simulator, which can give an idea of how the debugger works and its features (though obviously no impression of the real-world speed).

You are going to be investing a lot of time, and possibly a lot of money, in these tools - it's worth spending some time picking the right tool at the start.

Hi,

thanks for your answers so far. I think at the end it's really a matter of personal taste.

I have been working with the ARM compiler (stand alone with Lauterbach JTAG) for quite some time and that's why I will opt for the KEIL package, I think.

I just wanted to check, if there is a killer argument in favor of IAR.

IAR:

  • USB stick based licence management. The license is not linked to your PC.

  • Support for Cortex A8, which will never be the case with KEIL.

KEIL:

  • ARM compiler.

As to the other tools, I tried CodeSourcey and it's interesting although I am not sure about their JTAG support and the whole 'Sprites' approach. Also CodeSorcery has been bought recently by Mentor. They will certainly start pushing their own products (Nucleus, etc.) through this channel now.

Anyway thanks again for your answers.

--------------------------------------- Posted through

formatting link

I felt a litle ripped off when they initially said unlimited updates, then upped the version number and therefore wasn't eligible for updates!! :-(

Also in my case limited by 2 hardware breakpoints.

Surely that's a limitation of the ARM7, rather than the toolchain?

John Devereux

+1

You also, undoubtedly, have your own way of "doing things" and you want to see for yourself if the tools support, encourage or *discourage* this. No one can "tell" you that...

Which ARM compiler are you talking about ?

ARM PLC sells Keil, are you talking about Kiel ?

Are you suggesting ARM RVDS ??

The question was about IAR and Keil, are you also adding a third compiler to this mix ?

hamilton

Same with IAR + Segger Jlink + STRM912 CPUs That's most likely a processor limitation, not a tool's one.

-- Roberto Waltman

[ Please reply to the group, return address is invalid ]

If you are used to ARM/Keil, then that's a big argument in favour of continuing using it.

ARM owns Keil - I can't imagine there would be an ARM core that Keil won't support.

I expect that most debuggers work in a similar way, using some sort of "proxy" program that is specific to the hardware interface. They might hide it better, but it's a common way to modularise the debugging system and let it support a range of hardware debuggers. Tools like Lauterbach that connect by a network are sometimes a different matter.

I haven't noticed any change in CodeSourcery since Mentor bought them, but perhaps it will over time. But the core tools - Eclipse for the IDE, gdb debugger, and gcc for the toolchain - are all open source, and safe from too much Mentor-specific influence.

Hi hamilton,

As far as I know there is only one "ARM compiler" - armcc. It is the same compiler in the KEIL MDK package and in the ARM RVDS package. The only difference is that the KEIL package has some flags disabled. It doesn't let you compile for the ARM application processors Cortex A8/9 for example.

--------------------------------------- Posted through

formatting link

LOL, and the rest of us knows that how ??

So far the discussion has mentioned 5 ARM (processor) compilers.

So, the war (flame) begun has !!

hamilton

The one sold by ARM.

Isn't its current name Realview?

Yep. I have no experience of the Kiel so I can't do a comparison.

I can only compare IAR with ARM and TIME there is no comparison

tim

Yes I'd forgotten that.

Is the compiler "branded" Kiel the same as the one that ARM used to sell using their own branding?

tim

As far as I know, when Keil was a separate company, it had its own ARM compiler completely independent of ARM's compiler. When ARM bought them, I presume that they standardised on one and merged the good bits from the other - but that's just a guess.

The Keil compiler will not support any cores... only MCU. The RDVS supports al the cores. That is the differentiation between the RVDS and Keil.

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

In message , tim.... writes

The KEil compiler is a restricted ARM RVDS

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

And accurate,.

Keil had their own (very good ) ARM7 C compiler.

When they were acquired by arm the dropped their own compiler and put a cut down version of the ARM RVDS into Keil uVision.

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Hi Chris, I suspect you are using your own private definitions of words again... :).

If it supports a particular MCU with a cortex-M3 core, say, then it supports the CM3 "core", doesn't it?

John Devereux

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required