El compilador de Microchip está basado en GCC, y por tanto, su origen está abierto. Microchip añadido algunas de sus propias cosas para los más optimizaciones avanzadas, pero el compilador básico es gratuito y su código fuente está disponible.
Tratando de ser proveedor independiente con el microcontrolador compiladores también es un poco tonto. Sí, C es aproximadamente un estándar, pero las mejoras deben hacerse a ninguna instancia en particular el uso de la arquitectura. Va a haber algún código fuente de las diferencias entre las diferentes familias de microcontroladores no importa qué compilador que se utilice. Sólo porque dos de los compiladores se basan en GCC no significa que el código de la aplicación será el código fuente compatible.
En el mejor de los, fuente de compatibilidad de código se aplicará a los genéricos de la C de las declaraciones y de la aritmética. Sin embargo, el grueso de firmware embebido en pequeñas con recursos limitados sistemas se encargará de administrar el hardware especializado periféricos. Que el código será específico para esa familia, y a veces a la parte, por su propia naturaleza. Exigente general C compatibilidad es para el 5% de la solución e ignorando el 75% problema de la portabilidad entre diferentes dispositivos en el primer lugar.
También, hay un pequeño punto en la demanda de que el código fuente para el compilador de ser abierto. Está usted realmente va a llegar allí y hacer los cambios? De que es mejor dejar a los expertos cuyo trabajo a tiempo completo que es. Para un proyecto personal, no tiene sentido utilizar un compilador libre, pero entonces la mayoría de los vendedores tienen un poco de sabor de libre compiladores. Todo el Microchip compiladores tienen versiones gratuitas que sólo difieren de la totalidad en que algunas de las optimizaciones avanzadas están apagados. En la mayoría de los casos esto es irrelevante. Si usted está empujando los límites, entonces para un único uso el siguiente tamaño de la viruta, y siempre hay ensamblador disponible si usted realmente necesita el código de velocidad y el espacio para determinadas partes del sistema.