¿Por qué MPLAB IDE tiene tantos compiladores?

1

He aprendido que el IDE de MPLAB tiene diferentes compiladores como C18, XC8 y HI-Tech.

Quiero saber lo siguiente:

  1. ¿Por qué hay diferentes compiladores cuando uno puede hacer el trabajo?
  2. ¿Se utilizan ciertos compiladores solo para microcontroladores específicos?
  3. ¿Hay más compiladores que estos 3 que debo tener en cuenta?
  4. Si se puede usar cualquier compilador para, por ejemplo, compilar código PIC18F, ¿qué decide cuál elegir? Tengo muchas ganas de saber cómo decidir con cuál ir.
pregunta quantum231

2 respuestas

5
  

¿Por qué hay diferentes compiladores cuando uno puede hacer el trabajo?

Porque las personas los mejoran con el tiempo.

C18 ha sido reemplazado por XC8. C18 es viejo y basura, así que hicieron XC8 que es mucho mejor. También aprovecharon la oportunidad para darle un nombre más lógico.

HI-Tech es un compilador de terceros escrito por otra persona a quien Microchip le compró los derechos. También está en desuso a favor de XC8.

  

¿Algunos compiladores solo se utilizan para microcontroladores específicos?

Sí. A medida que se lanzan nuevos chips, el compilador debe soportarlos. Los compiladores antiguos que no se actualizan no admiten los nuevos chips.

  

¿Hay más compiladores que estos 3 que debo tener en cuenta?

También existe el compilador SDCC de código abierto, pero es muy básico y solo tiene soporte parcial de PIC, y no funciona (por lo que sé) con MPLAB.

Otro, que usa su propio IDE, se llama CCS, aunque nunca lo he usado.

Si no te gusta C, hay una serie de compiladores BASIC para chips PIC de 8 bits, incluido Swordfish.

  

Si se puede usar cualquier compilador para compilar el código PIC18F, ¿qué decide cuál elegir? Tengo muchas ganas de saber cómo decidir con cuál ir.

Eso es simple: usted elige XC8 ya que es el compatible actualmente. Todos los demás son viejos y obsoletos.

    
respondido por el Majenko
6

Hasta ahora, la respuesta dada se limita a la microelectrónica PIC de 8 bits, pero el OP preguntó (en parte):

  
  1. ¿Por qué hay diferentes compiladores cuando uno puede hacer el trabajo?

  2.   
  3. ¿Se utilizan ciertos compiladores solo para microcontroladores específicos?

  4.   

Voy a responder a estas dos preguntas juntas. Microchip no solo fabrica microcontroladores de 8 bits (PIC10, PIC12, PIC16, PIC18) sino también de 16 bits (PIC24 / dsPIC33) y de 32 bits (PIC32).

Cada uno de los PIC de 8 bits (excepto el PIC18) tiene conjuntos de instrucciones similares, utilizando un solo acumulador (W0), una pequeña cantidad de RAM (25-256 bytes) y una pila de llamadas de hardware. El conjunto de instrucciones originalmente tenía 35 instrucciones, pero se amplió a 49 instrucciones en dispositivos más nuevos para adaptarse mejor a los compiladores de C (hasta ese momento, la mayoría de los programas 8-PIC estaban escritos en código de ensamblador; muchos aún están en los chips con muy poco flash .)

Los dispositivos PIC18 agregaron soporte para una pila de software y una memoria RAM mucho más grande. Tienen 75 instrucciones (83 para dispositivos más nuevos).

A pesar de todas estas diferencias (particularmente las diferencias entre el conjunto de instrucciones PIC de 8 bits de gama baja y el PIC18 de gama alta), el compilador XC8 soporta todas estas familias de PIC de 8 bits. Lo hace haciendo uso de dos compiladores internos: PICC y PICC18, y seleccionando cuál usar según el procesador seleccionado.

Hay versiones tanto gratuitas como de pago del compilador XC8, la única diferencia es la cantidad de optimización realizada.

El siguiente paso desde los microcontroladores PIC de 8 bits son el PIC24 de 16 bits y el dsPIC33. Son muy similares: el dsPIC incluye el conjunto de instrucciones PIC24, pero también agrega instrucciones adicionales para hacer DSP (Procesamiento de señal digital), de ahí su nombre. Estos procesadores PIC de 16 bits son compatibles con el compilador XC16. Aunque se pueden programar en lenguaje ensamblador, rara vez se hace excepto para bucles muy ajustados o rutinas de servicio de interrupción de tiempo crítico (ISR).

Al igual que XC8, existen versiones gratuitas y de pago del compilador XC16, de nuevo la diferencia es la cantidad de optimización realizada.

Y finalmente, está la familia PIC32 de 32 bits, con un conjunto de instrucciones derivado de los MIPS de estilo RISC. Los dispositivos más nuevos pueden abordar hasta 2 MB de memoria flash y 512 K de datos. Los procesadores de 32 bits son compatibles con el compilador XC32. Al igual que el PIC24, rara vez se programan en lenguaje ensamblador. Y también como el compilador Like XC16, existen versiones gratuitas y pagas del compilador XC32, una vez más la diferencia es la cantidad de optimización realizada, hasta un 50%.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas

Comentarios Recientes

¿Cuáles fueron los obstáculos que enfrentó? El equipo C ++ de CodeComplex Industries USA trabajó incansablemente con IMOA, W3C y MPLAB para hacer que mis funciones de lenguaje de programación favoritas estén disponibles para cualquiera que pueda asumirlo. "Desarrolladores de aplicaciones IDE:" Paquetes de código abierto "y" Storm View - todo en uno ", me pusieron en el camino hacia la educación. Como todas las pequeñas empresas en mi experiencia, hablé con las principales empresas y porteros que me dijeron:"... Lees verder