programar - programacion en pic c compiler ejemplos
Cuál es el mejor compilador c para el Pic18 micro (15)
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.
Estamos comenzando un nuevo proyecto basado en un microchip PIC18F252. ¿Cuál es el mejor compilador ''c'' para usar?
Insisto en que uses 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 / estudiante y tendrá una buena idea para 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.
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.
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 está configurado en c:
CCS es un buen compilador para usar, un poco problemático y 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. De nuevo, buen soporte de hardware y excelente depurador.
Creo que si estás buscando una solución gratuita, puedes obtener compiladores de c para MPLAB, aunque personalmente nunca he usado ninguno, así que no puedo emitir un juicio.
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 podría haber mejores opciones.
La tecnología PICC siempre ha sido confiable para mí y ha tenido muchos años de desarrollo.
El sistema IAR tiene un compilador / IDE PIC18: IAR Embedded Workbench para PIC18 .
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 de Microchip C18 solo lo ven cuando van al sitio web de microchip y ya están familiarizados con MpLab de ensamblar (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.
- Debe especificar a qué banco ram asignar variables.
- Para que const string se asigne al espacio de programa (en lugar de ram) debe usar la palabra clave rom.
- No puede asignar variables que son más grandes que 256 bytes sin editar un script del enlazador.
Se puede encontrar una excelente comparación que profundiza mucho más aquí: http://www.xargs.com/pic/picc18-vs-c18.html
Además del compilador, también debes 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 probé sus compiladores profesionales. 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 pareció tardar bastante en compilarse, pero podría haber sido una b / c de la complejidad del programa.
He estado usando CCS por muchos años. He encontrado algunos errores pero el soporte es excelente y puedo desarrollarme más rápido y más fácil con CCS que con C18 o HiTec.
MPLAB C18 - Estudiante
No he usado el compilador de Microchip, pero he estado utilizando los productos de HiTech durante 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 ints y estructuras globales y estáticas, y las matrices de las mismas, cuyo tamaño varía de 2-255 bytes, se asignarán en cada caso por 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 automáticas y parámetros 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 conmutación de bancos 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 que los punteros funcionen 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?
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 muestra (que incluía estructuras, matrices, punteros de función, punteros de estructura, caracteres y enteros), 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:
- ensamblador en línea limitado
- lento para compilar y vincular
- El IDE es solo un poco mejor que MPLAB.
Las cosas que me gustan son:
- Bueno, el tamaño del código parece más pequeño que la competencia.
- Algunas extensiones del lenguaje (por ejemplo, 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 característica ralentiza la compilación y el enlace)
Como no me gusta el SB IDE, uso Source Insight para un editor y ¡ROCKS! La utilidad SB "make" tampoco tiene esperanza, así que uso GnuWin32 make, que es absolutamente real, y gratis.
Así que, en general, me siento bastante mejor acerca de mi elección de herramientas.
De todos modos, espero que esto ayude a alguien por ahí.
usa sdcc:
y para el compilador PIC no gratuito (¡pero gratis!), ¡mikroC es gr8!
http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/
HTH
- Compilador Microchip C18 : realmente el mejor y más fácil de usar. Perfecto para uso profesional.
- HI-TECH : Se usa cuando Microchip no funciona (era para un PIC16).
- CCS
- SourceBoost
PD: Yo mismo trabajé en la familia PIC18F25XX y PIC18F45xx, así que sé un poquito sobre 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.
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