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...
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.
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.
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.
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.