views:

794

answers:

4

How does Keil compare to GCC for ARM7 development? I'm in the process of choosing hw consultants for a medium size project and some use keil and some use gcc. I'd like to know the gotchas involved in going with either option...

+4  A: 

There is very little difference between the two from a coding/development standpoint. The only thing I think you should consider is not specific to these compiler. Maintenance:

  • Will you be able to maintain the software is you do not have access to the Keil compiler or will it be a minor cost?
  • Also what debughardware/JTAG is supported and what will the cost be if you need to get some?
  • What will the cost be if you have to move from one compiler to other compiler due to having to switch developers later?

Unless you are very cost sensitive I think the real question is who will do the best job since the compiler will be a minor problem.

Gerhard
+1  A: 

The main benefit of a commercial solution is the support for me if you run into problems with the compiler or the libraries.
Open source is fine when you are using main stream hardware (in case of gcc = x86). Most of the problems of the compiler or the libs normally will be fixed very soon by the community.
If you are developing on a (perhaps exotic) embedded platform you soon can feel pretty lonely if you have any problems with the tool chain.

chrmue
Honestly speaking, how often do you run into issues with the compiler? I've been using commercial options for years (on ARM7 and 8051 development) and have *rarely* had difficulties.
Nate
@Nate: feel lucky! we're using gcc for ARM9 here and just had a really nasty problem with the compiler when we tried to use the optimisation. Lucky as we are we found a patch to solve the problem. Some years ago I worked in another company and there we had to change from gcc (for C166) to KEIL because the libraries were full of errors.
chrmue
As an employee of CodeSourcery, I feel like I ought to point out that "commercial solution" and "open source" aren't an either-or choice -- we sell GCC-based solutions with full commercial-grade support to address and prevent that sort of problem. (We're not the only company selling GCC support, either.)
Brooks Moses
Having worked with DEC and Intel on their VC++ linker and compiler respectively, even having support isn't indicative of getting support. It took me three months to get a DEC Alpha linker that could put together a 32MB executable. Three months of not being able to ship my code, on THEIR platform. Pretty bad (and maybe a sign of why they're dead now).
Chris Kaminski
+2  A: 

If I remember right Kiel is now owned by ARM. ARM compilers are night and day better than gcc for producing good code. I seem to remember Keil including a reduced or free or whatever version of rvct. So my question is having much faster, cleaner, better code worth using a commercial solution when gcc is out there and well used? I would go with gcc unless you are in a performance crunch situation and are willing to have to mentally translate between all the gcc based information freely available on the net to your commercial tools and back again. In general going with gcc is probably the better path, granted there is probably a wealth of information behind the google search box for Kiel but the amount of knowledge and information for gcc based solutions shadows that.

If the consultants are using one tool to do the initial legwork for a project for you and then at the end they hand the work over, you probably will want to have a gcc based solution (that doesnt mean say vxworks gcc, or even code sourcery gcc, but a generic gcc solution), because no doubt you or someone else you hire is going to have to pick this mass up and run with it and with gcc you are more likely to find someone willing and able.

dwelch
+1  A: 

We use the Keil platform and are very happy with it's performance and optimization. I ran some standard benchmarks a couple of years ago and they were quite good. Another consideration is support and so far, Keil has had very good response times and relatively good feedback on some tough issues.

FYI, if your project will use the Keil RTOS and you have any questions about it, the source code is available for purchase.

Answerguru