2008-09-18 6 views

Respuesta

6

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

4

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

+0

Soy un usuario de CCS también. Realmente me gusta la API C y lo fácil que es pasar a otros procesadores. Sin embargo, creo que el compilador de C tiene errores, ciertamente un subconjunto de la norma C. – kenny

0

Si puede salirse con la suya (mi preferencia sería usar) el Ensamblador PIC18 con MPLAB. Tiene la ventaja de ser libre y relativly bien documentado junto con el hecho de que tiene hardwars decente/soporte de depurador. Su pequeño conjunto de instrucciones y su simplicidad permitieron una codificación fácil y rápida.

Si se fijan en c sin embargo:

CCS es un buen compilador de usar, un poco buggy y bastante caro, pero también tiene una buena capacidad de depuración.

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

Creo que si estás buscando una solución gratuita puedes obtener compiladores c para MPLAB, aunque personalmente nunca he usado ninguno, así que no puedo juzgar.

3

No me gustaba CCS, era demasiado peculiar.

SourceBoost no es malo y bastante barato, alrededor de £ 40.

El compilador Microchip C18 es el mejor IMO, pero muy caro. Sin embargo, hay una versión demo/estudiante gratuita.

8
  1. Microchip C18 compiler: realmente el mejor y más fácil de usar. Perfecto para uso profesional.
  2. HI-TECH: Se usa cuando Microchip no funciona (era para un PIC16).
  3. CCS
  4. SourceBoost

PS: Yo mismo trabajé en la familia PIC18F25XX y PIC18F45xx, así que sé una pequeña poco acerca de esto. ;)

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

+0

Estoy de acuerdo. Solo he usado CCS y C18, pero prefiero C18. Tiene una gran colección de bibliotecas de hardware/software y se integra bien en MPLab. – mjh2007

+1

Utiliza CCS durante 1 año. Es fácil de usar pero tiene muchos errores. – RHaguiuda

+0

El enlace HI-TECH está roto. – Tshepang

1

Insisto 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á trabajando.

Comience con la edición gratuita/para estudiantes y tendrá una buena idea de cómo usarla. Si su proyecto es pequeño, eso puede ser todo lo que necesita. Acabo de terminar un proyecto de desarrollo de tamaño grande en un PIC 18F y estaba extremadamente satisfecho con el compilador C18.

2

Actualmente uso CCS y lo odio. Es tan no estándar y es tanto un subconjunto de C que simplemente apesta. Estoy considerando cambiar en breve. Voy a probar el compilador Microchip C18 primero y luego voy a tragar duro y obtener HighTech que parece bastante sólido al revisar la versión de prueba y las muestras.

7

Hice una extensa investigación sobre el compilador Hitech PICC18 y el compilador Microchip C18 hace unos años.

Creo que la mayoría de las personas que deciden ir con el compilador Microchip C18 solo porque lo ven cuando van al sitio web de microchip y ya están familiarizados con MpLab de ensamblaje (que es un terrible IDE 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, ha agregado todo tipo de palabras clave específicas del compilador y ha forzado a administrar la memoria mucho más.

  1. Debe especificar a qué banco ram asignar variables.
  2. Para que la cadena const se asigne al espacio de programa (en lugar de ram) debe usar la palabra clave rom.
  3. No puede asignar variables que son más grandes que 256 bytes sin editar un script del enlazador.

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

Además del compilador también es necesario tener en cuenta el IDE. Soy un entusiasta fanático del eclipse y me gustó mucho HiTide de HiTech por este motivo. Sin embargo, desde que Microchip compró HiTech ... parece que ya no son compatibles con HiTide. No creo que esto sea oficial ... pero por mi experiencia con el soporte de HiTech ... ya no están corrigiendo errores, lo que es una verdadera lástima.


También he probado sus compiladores pro. Realmente me gusta la idea. Sin embargo, mi proyecto excedió los requisitos del bloque de parámetros automáticos y no pude usarlo. También tardó mucho tiempo en compilarse, pero podría haber sido una b/c de la complejidad del programa.

2

He estado usando CCS durante muchos años. He encontrado algunos errores pero no apoyo es grande y puedo desarrollar más rápido y más fácil con CCS que con C18 o HiTec

1

MPLAB C18 - Estudiante

5

No he utilizado el compilador Microchip, pero he estado usando Productos de HiTech por años. En general, me ha gustado su compilador PIC16, pero creo que su compilador PIC18 es bastante frustrante. Si bien agradezco no tener que colocar todas las variables en los bancos, las reglas utilizadas por el compilador de HiTech son molestas, extrañas y ridículas. Breve reseña: 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 apropiado; cambiar bancos toma una instrucción.

Las estructuras y estructuras globales y estáticas, y las matrices de las mismas, cuyo tamaño va de 2 a 255 bytes, se asignarán cada una en psects por cada módulo; el psecto de cada módulo debe caber en una página de 256 bytes. Las matrices de bytes, así como los bytes individuales, entran en un "gran" psecto en el que se supone que cada byte posiblemente resida en una página diferente.

Todas las variables y parámetros automáticos en todo el programa deben caber en una página de 256 bytes (se asignan estáticamente en el tiempo del enlace). El enlazador superpone las variables que nunca están en vivo 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 que las variables globales y estáticas de hasta 128 bytes son 'cercanas'. Se puede acceder a estos sin cambio 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, se rociarán con las instrucciones de movlb (switch-bank).

No quiero "generación de código omnisciente". Quiero la capacidad de agregar algunas pistas para ubicar las cosas de forma sensata definiendo palabras clave o macros para objetos personalizados, permitiendo que las variables automáticas y locales compartan psects con otras variables (superponiendo variables automáticas/parámetros 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. Del mismo modo, permita que los calificadores de banco en funciones y punteros de función especifiquen que ciertas llamadas indirectas solo pueden funcionar con ciertas funciones. En lugar de hacer punteros a 24 bits o tener que trabajar para asegurar que las funciones llamadas indirectas terminen en los primeros 64K, coloque un GOTO automático en los primeros 64K, por lo que los punteros a las funciones pueden ser de 16 bits. O mejor aún, si una función 'clase' tiene menos de 64 funciones diferentes, use un puntero de 8 bits.

¿Estoy pidiendo demasiado?

+0

No, no estás pidiendo demasiado. Estoy de acuerdo; Encontré el compilador HiTech inutilizable una vez que utilicé los punteros de función. C18 funcionó mucho mejor, pero aún así tuvo problemas. Sin embargo, se resolvieron bastante fácilmente. – janm

+1

¿Te refieres al compilador de Microchip? Mi recuerdo fue que C18 no promueve las matemáticas de los caracteres a int; mi código frecuentemente se basa en promoción interna, por lo que la desviación del comportamiento estándar sería inaceptable. – supercat

1

He estado utilizando SourceBoost durante un año más o menos, y no estoy muy emocionado, 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 ejemplo (que incluía estructuras, matrices, punteros de función, indicadores de estructura, caracteres y entradas) el kit SB7 produjo código que tenía aproximadamente 2/3 del tamaño de MCC18 y HTC. Quería determinar cuánto de eso era el arranque y la sobrecarga de tiempo de ejecución, así que agregué más elementos aleatorios al programa de muestra, y el tamaño delta mostró que SB aún tenía 2/3 del tamaño de los demás. HTC era ligeramente más pequeño que MCC18, pero no significativamente. Todas las optimizaciones están activadas en todos los entornos.

Las cosas que no me gustan de SB son:

  • limitados en línea ensamblador
  • lenta para compilar & enlace
  • El IDE es sólo ligeramente mejor que MPLAB.

Las cosas que me gusta de ella son:

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

Dado que no me gusta el IDE SB, utilizo Fuente Insight para un editor y que las rocas! La utilidad SB "make" tampoco tiene esperanza, así que uso GnuWin32 make, que es absolutamente real, y gratis.

Así que, en general, me siento un poco mejor acerca de mi elección de herramientas.

De todos modos, espero que esto ayude a alguien por ahí.

0

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

Cuestiones relacionadas