Pregunta

Estamos iniciando un nuevo proyecto basado en un microchip PIC18F252.¿Cuál es el mejor compilador 'c' para usar?

¿Fue útil?

Solución

tech PICC siempre ha sido confiable para mí y ha tenido muchos años de desarrollo.

Otros consejos

  1. Compilador de microchip C18:Realmente el mejor y más fácil de usar.Perfecto para uso profesional.
  2. DE ALTA TECNOLOGÍA:Se usa cuando el Microchip no funciona (era para un PIC16).
  3. CCS
  4. FuenteBoost

PD:Yo mismo trabajé en la familia PIC18F25XX y PIC18F45xx, así que conozco un poco poco sobre esto.;)

PS2:En caso de un error del compilador (nos pasó a nosotros), el equipo de Microchip es bastante reactivo y se lanzan nuevas versiones con bastante rapidez.Intente encontrar un revendedor local que tenga contacto con Microchip, luego participe en un evento con ellos y obtenga contactos directos.Inestimable.

Hace unos años investigué exhaustivamente sobre el compilador Hitech PICC18 y el compilador Microchip C18.

Creo que la mayoría de las personas deciden utilizar el compilador Microchip C18 solo porque lo ven cuando visitan el sitio web del microchip y ya están familiarizados con MpLab al realizar el ensamblaje (que es un IDE terrible en mi humilde opinión).

La solución de HiTech está mucho más cerca de ANSI C (por lo tanto, el código es mucho más portátil).Con C18 has agregado todo tipo de palabras clave específicas del compilador y te ves obligado a administrar la memoria mucho más.

  1. Debe especificar a qué banco de RAM asignar variables.
  2. Para que la cadena constante se asigne al espacio del programa (en lugar de a la RAM), debe usar la palabra clave rom.
  3. No puede asignar variables que tengan más de 256 bytes sin editar un script de vinculación.

Puede encontrar una excelente comparación que va mucho más en profundidad aquí: http://www.xargs.com/pic/picc18-vs-c18.html

Además del compilador, también debes tener en cuenta el IDE.Soy un ávido fanático de los eclipses y por eso me gustó mucho HiTide de HiTech.Sin embargo, dado que Microchip compró HiTech...Parece que ya no apoyan a HiTide.No creo que esto sea oficial...pero según mi experiencia con el soporte HiTech...Ya no solucionan errores, lo cual es una verdadera lástima.


También probé sus compiladores profesionales.Realmente me gusta la idea.Pero mi proyecto excedió los requisitos del bloque de parámetros automáticos y no pude usarlo.También pareció tomar muchísimo tiempo compilar, pero podría haber sido debido a la complejidad del programa.

No he usado el compilador de Microchip, pero he estado usando los productos de HiTech durante años.En general, me ha gustado su compilador PIC16, pero encuentro bastante frustrante su compilador PIC18.Si bien aprecio no tener que colocar manualmente todas las variables en los bancos, las reglas utilizadas por el compilador de HiTech son molestas, extrañas y tontas.Breves antecedentes:el chip tiene 16 bancos de variables de 256 bytes (*no todos los 256 bytes están disponibles en todos los bancos) y un puntero de banco.El acceso directo a una variable requiere que se seleccione el banco adecuado;Cambiar de banco requiere una instrucción.

Las estructuras y enteros globales y estáticos, y sus matrices, cuyo tamaño oscila entre 2 y 255 bytes, se asignarán cada uno en psects por módulo;El aspecto de cada módulo debe caber en una página de 256 bytes.Las matrices de bytes, así como los bytes individuales, van en un segmento "grande" donde se supone que cada byte posiblemente resida en una página diferente.

Todas las variables y parámetros automáticos del programa deben caber en una página de 256 bytes (se asignan estáticamente en el momento del enlace).El vinculador superpone variables que nunca están activas simultáneamente, pero asume que cualquier llamada a un puntero de función con una firma particular puede llamar a cualquier función cuya dirección se tome y que tenga esa firma.

Es posible declarar hasta 128 bytes de variables globales y estáticas como "cercanas".Se puede acceder a ellos sin cambiar de banco.No es posible designar que las variables o parámetros automáticos se coloquen 'cerca'.

Las reglas de cambio de banco utilizadas por HiTech significan que muchas funciones, incluso si nunca usan variables fuera de su propio módulo, estarán salpicadas de instrucciones movlb (cambio de banco).

No quiero "generación de código omnisciente".Quiero tener la capacidad de agregar algunas sugerencias para colocar las cosas de manera sensata al definir palabras clave o macros para psects personalizados, permitiendo que las variables automáticas y locales compartan psects con otras variables (superponiendo variables/parámetros automáticos en la medida de lo posible dadas las restricciones bancarias especificadas).Si un proveedor de compiladores realmente quiere ser amable, permita que los punteros acepten calificadores bancarios, de modo que un puntero que solo apunte a cosas en un determinado aspecto pueda almacenarse en 8 bits.Asimismo, permita que los calificadores bancarios en funciones y punteros de función especifiquen que ciertas llamadas indirectas solo pueden funcionar con ciertas funciones.En lugar de hacer que los punteros de función sean de 24 bits o tener que trabajar para garantizar que las funciones llamadas indirectamente terminen en los primeros 64 K, coloque un GOTO automático en los primeros 64 K para que los punteros de función puedan ser de 16 bits.O mejor aún, si una función 'clase' tiene menos de 64 funciones diferentes, utilice un puntero de 8 bits.

¿Estoy pidiendo demasiado?

Usamos CCS y es bastante bueno.Muy lento, pero funciona bien.De todos modos, no tengo ninguna comparación con otros compiladores, por lo que puede haber mejores opciones.

No me gustó CCS, era demasiado peculiar.

SourceBoost no está mal y es bastante barato, alrededor de £40.

El compilador Microchip C18 es el mejor en mi opinión, pero muy caro.Sin embargo, existe una edición de demostración/estudiante gratuita.

Actualmente uso CCS y lo odio.Es tan poco estándar y es un subconjunto de C que simplemente apesta.Estoy considerando cambiarme en breve.Primero probaré el compilador Microchip C18 y luego tragaré saliva y obtendré HighTech, que parece bastante sólido al revisar la versión de prueba y las muestras.

El sistema IAR tiene un compilador/IDE PIC18: Banco de trabajo integrado IAR para PIC18.

Llevo muchos años utilizando CCS.Encontré algunos errores, pero el soporte es excelente y puedo desarrollar más rápido y más fácilmente con CCS que con C18 o HiTec.

utilizar sdcc:

http://sdcc.sourceforge.net/

y para el compilador PIC no gratuito (¡pero gratuito!), ¡mikroC es gr8!

http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/

HT

Insistiría en que utilice el compilador C18.Es extremadamente robusto y muy fácil de usar.Es imprescindible para el desarrollo profesional.Realmente depende del tamaño del proyecto en el que estés trabajando.

Comience con la edición gratuita/para estudiantes y se familiarizará con su uso.Si tu proyecto es pequeño, puede que eso sea todo lo que necesitas.Acabo de terminar un proyecto de desarrollo de gran tamaño en un PIC 18F y quedé extremadamente satisfecho con el compilador C18.

MPLAB C18 - Estudiante

He estado usando SourceBoost durante aproximadamente un año y no estoy del todo entusiasmado, pero ha estado bien.Sin embargo, acabo de completar una prueba de tamaño de código entre SourceBoost 7, MCC18 y Hi-Tech C.Los resultados fueron notables.

Para un pequeño programa de muestra (que incluía estructuras, matrices, punteros de función, punteros de estructura, caracteres e ints), el kit SB7 produjo un código que era aproximadamente 2/3 del tamaño de MCC18 y HTC.Quería determinar cuánto de eso era sobrecarga de inicio y tiempo de ejecución, así que agregué más cosas aleatorias al programa de muestra, y el tamaño delta mostró que SB todavía tenía 2/3 del tamaño de los demás.HTC era un poco más pequeño que el MCC18, pero no significativamente.Todas las optimizaciones están activadas en todos los entornos.

Las cosas que no me gustan de SB son:

  • ensamblador en línea limitado
  • lento para compilar y vincular
  • El IDE es sólo ligeramente mejor que MPLAB.

Las cosas que me gustan de él son:

  • Bueno, el tamaño del código parece más pequeño que el de la competencia.
  • Algunas extensiones del idioma (p. ej.referencias).Sin embargo, acaba con la portabilidad.
  • El precio.
  • El soporte a través de los foros es bastante bueno.Los autores publican a menudo.
  • Eliminación automática de código no utilizado (creo que esta característica ralentiza la compilación y el enlace)

Como no me gusta el SB IDE, uso Source Insight como editor y ¡es genial!La utilidad "make" de SB tampoco tiene remedio, así que uso GnuWin32 make, que es absolutamente auténtico y gratuito.

En general, me siento bastante mejor con respecto a mi elección de herramientas.

De todos modos, espero que esto ayude a alguien.

MPLAB C-18 es bueno y tienen una versión gratuita para estudiantes.Tiene una buena interfaz de usuario que es lo suficientemente simple como para no confundir a los usuarios.Es lo que uso.

Si puede salirse con la suya (mi preferencia sería) utilizar el ensamblador PIC18 con MPLAB.Tiene la ventaja de ser gratuito y relativamente bien documentado, además de tener soporte decente para depuradores y hardware.Su pequeño conjunto de instrucciones y su simplicidad condujeron a una codificación fácil y rápida.

Sin embargo, si estás configurado en c:

CCS es un buen compilador, tiene algunos errores y es bastante caro, pero también tiene buenas capacidades de depuración.

Microsoft Embedded Studio (o algo así) es excelente si ya está acostumbrado a la metodología de Visual Studio 6 para escribir código C.Nuevamente, buen soporte de hardware y excelente depurador.

Creo que si está buscando una solución gratuita, puede obtener compiladores de C para MPLAB, aunque personalmente nunca he usado ninguno, por lo que no puedo emitir un juicio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top