You had a lot of unanswered questions about the chipKIT compiler. Here’s some answers from Jason Kajita, a compiler developer. Jason wants to us to emphasize that this is the current plan and subject to change. Thanks for the lengthy answers!
Is there any new open source code in the chipKIT compiler – files that were previously under a restrictive license but are now GPL?
At the moment, the source for the Standard C library is not provided. This is because it contains some code licensed from other companies. We decided to license this code because it had a better performance/size balance than the existing open-source solutions that we evaluated and we need to put our best foot forward for competitive benchmarking purposes. In short, we made the decision to go with the best technical solution, but that meant that we can’t provide source for the library.
My plan is to move the chipKIT compiler over to the Newlib library. This way, everything we need will be under an open-source or public-domain license. We may take a slight performance hit when we move to Newlib, but will be more suitable for chipKIT users. Also, with some new PIC32 devices coming down the pipeline, performance isn’t likely to be an issue.
I understand that the community is skeptical about Microchip’s commitment to the hobbyist community, so I am going to try to get this done sooner rather than later.
Are you familiar with what is restricted on any of the other compilers (C18/24/33)?
The 16-bit compiler (MPLAB C30) is in the same boat. It has library code licensed from another company.
What is the difference between the C32 compiler and the chipKIT compiler for PIC32?
Currently, the chipKIT compiler has features above and beyond the current version of the official MPLAB® C32 compiler. It supports C++ features, but it is not the full C++ solution that we eventually plan to offer with the MPLAB C32 compiler. The chipKIT compiler is based on GCC 4.5.1, while MPLAB C32 v1.12 is based on GCC 3.4.4.
Lots more below…
That being said, the upcoming MPLAB C32 v2.00 release has some additional features that aren’t yet in the chipKIT compiler. It is going to leapfrog the chipKIT compiler. Going forward, I plan to port features back to the chipKIT code base after they are first released in the MPLAB C32 compiler. Of course, there is nothing stopping the community from porting code from the MPLAB C32 source archive to the chipKIT-cxx repository on github. Actually, that would really save me some time!
The main difference between the chipKIT compiler and the MPLAB C32 compiler is support. Microchip’s Field Applications Engineers and corporate tech-support team won’t be able to support chipKIT. In addition, the MPLAB C32 compiler is certified by our compiler validation team before release but they do not formally test the chipKIT compiler.
This means that commercial developers will want to stick with MPLAB C32. Hobbyists have a choice between C32 and the chipKIT compiler. There’s also a number of third-party compilers out there from Microchip’s partners.
Does the chipKIT compiler have the optimizations that expire after 60days in the C32 version?
There are no optimization restrictions in the chipKIT compiler. If I remember correctly, the mpide uses the -O2 optimization level by default. A chipKIT user may choose to modify the platforms.txt file to change the optimization level to -O3 for additional speed or -Os for code-size savings.
I understand chipKIT compiler does C++, is that also coming to other compilers?
C++ support will be coming to MPLAB C32, but we don’t have a date to announce yet. The scope of the solution is still being determined and there is also some work to be done in MPLAB X to support C++.