TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Edson en 11 de Mayo de 2017, 20:01:36
-
Buenas tardes.
Les comento que estoy desarrollando un compilador libre y de código abierto en Pascal, para la gama media de PIC, la 16F. De momento solo soporta datos simples (byte, char, word, boolean, bits), pero está avanzando rápidamente.
Este compilador tiene un nivel de optimización muy bueno, y es multiplataforma. He compilado una versión para Linux y otra para Windows.
Espero que les sea útil.
https://github.com/t-edson/PicPas
-
Avanzando con mi compilador para microcontroladroes PIC, PicPas, ahora ya en la versión 0.6.5. Las nuevas mejoras incluyen a la generación de código, a las estructuras del lenguaje, a la optimización, la traducción al español y a los bloques ASM. https://github.com/t-edson/PicPas
-
Impresionante ((:-)) ((:-)) El ide tambien lo has hecho tu?
Un saludo
-
Impresionante ((:-)) ((:-)) El ide tambien lo has hecho tu?
Gracias. Sí, de hecho, la IDE, especialmente el editor, fue lo primero que hice. Tuve que crear varias librerías para ello: Resaltador de sintaxis, autocompletado, y utilidades de edición. Hay aún varias cosas que agregar, como el autocompletado de nombres de variables, constantes y procedimientos, pero lo iré avanzando poco a poco.
-
Lo vuelvo a decir... impresionante ((:-)) ((:-))
tienes hasta el uso de memoria
Que has utilizado para la parte grafica del IDE, yo uso el C# para mis proyectos pero hace tiempo que quiero migrarme a otra cosa mas portable y estaba pensando el el QT
un saludo
-
Uso la combinación:
Lazarus (IDE) - Free Pascal (Compilador) - Object Pascal (Lenguaje)
Que es multiplataforma.
En ese entorno es que tengo varias librerías desarrolladas, que ayudan en la creación de compiladores e IDE.
He usado antes QT, pero no lo usaría de nuevo. A mi parecer C++ no es apropiado para este tipo de proyectos. QT tiene muchas dependencias y realiza una "desnaturalización" del lengauje C++. Sin contar que compilar en C++, es un proceso masoquista.
-
PicPas, el único compilador Pascal libre, multiplataforma, para microcontroladore PIC, ha sido actualizado a la versión 0.7.0.
Ahora llega con la interfaz completamente mejorada y personalizable. La IDE soporta los idiomas inglés, alemán y español. Se puede descargar para Windows y Ubuntu: https://github.com/t-edson/PicPas
-
se ve muy bueno el compilador. espero que lo puedas terminar pronto
-
El compilador está lejos de estar terminado pero ya es bastante funcional y se puede hacer casi cualquier aplicación, ya que, aunque no tiene librerias especializadas, se tiene un buen soporte para ensamblador, además de que el código generado es bastante compacto.
Por cierto, acaba de salir la versión 0.7.1, que tiene detección de errores, casi en tiempo real, mientras se digita el programa. Algo que no lo tiene ni CCS, Ni MikroPascal, ni ningún otro compilador para PIC que yo conozca.
Si sumamos eso, a las características adicionales de la IDE, como la personalización, edición en modo columna, múltiples cursores, autocompletado inteligente, y herramientas de navegación. Bien se podría decir que la IDE de PicPas es, la mejor IDE que existe entre las que incluyen los compiladores para PIC.
-
Después de un breve descanso PicPas, el único compilador Pascal mutliplataforma para PIC, vuelve a aparecer, ahora en su versión 0.7.3. Entre las novedades, se tienen:
- Implementación de las directivas $CONFIG, $INCLUDE, $DEFINE e $IFDEF
- Mejora en la ubicación de errores en bloques ASM y DIRECTIVAS
- Definición de macros y compilación condicional (experimental).
- Configuración de Herramientas externas desde la IDE.
https://github.com/t-edson/PicPas
-
PicPas el compilador libre de Pascal para la gama media de PIC, avanza rápido. Ahora ya en su versión 0.8.0, aparece con notables mejoras, como el uso de temas (skins), resaltado de errores, mejor procesamiento de directivas, nuevas optimizaciones y la inclusión de un depurador/ simulador experimental para instrucciones.
https://github.com/t-edson/PicPas
-
PicPas ahora en su versión 0.8.7 incluye, entre otras mejoras, soporte para los PIC con isntrucciones de 12 bits: PIC10F200 PIC10F200 PIC10F202 PIC10F204 PIC10F206 PIC10F220 PIC10F222 PIC12F508 PIC12F509 PIC12F510 PIC12F519 PIC16F505 PIC16F506 PIC16F526 PIC16F527 PIC16F54 PIC16F57 PIC16F59.
https://github.com/t-edson/PicPas
-
Interesante compilador,no lo conocía ((:-))
-
Muy interesante proyecto.
Solo le faltaría el manejo de variables tipo flotante (Real, single) y estaría perfecto. Ya ha avanzado muchísimo con la nueva versión.
Ojalá que no la abandonen.
Saludos,
elreypic.
-
Ante todo felicitaciones por este gran foro, hace mucho vengo leyéndolo pero no me suscribía.
Respecto a este compilador de pascal, que acabo de darle una prueba, primero tuve que instalar fpc y lazarus para poder compilar PicPas, pero al final ha ido todo muy bien.
Les dejo los pasos para clonar desde git, y lanzar lazarus con configuración en el home de usuario.
En mi caso gentoo, asi pues que emerge, para otras distros será su respectivo manejador de paquetes del sistema.
# emerge -av dev-lang/lazarus
esto instala por dependencia al compilador free pascal compiler "dev-lang/fpc"
Para ejecutar el IDE de lazarus usando la configuración en el home y no en /etc/ ya que necesita permisos de root
se crea la carpeta oculta en el home y se lanza lazarus con el parámetro --pcp=~.lazarus
$ mkdir .lazarus
$ startlazarus --pcp=~.lazarus
Clonamos el git de los fuentes de PicPas
$ mkdir Paquetes
$ cd Paquetes
$ git clone https://github.com/t-edson/PicPas.git
Clonando en 'PicPas'...
remote: Enumerating objects: 6966, done.
remote: Total 6966 (delta 0), reused 0 (delta 0), pack-reused 6966
Recibiendo objetos: 100% (6966/6966), 167.04 MiB | 115.00 KiB/s, listo.
Resolviendo deltas: 100% (5199/5199), listo.
Y ya en lazarus se abre el proyecto PicPas y se lo compila, el archivo del proyecto de PicPas es ./PicPas/Source/PicPas.lpi
Al final si la compilación ha ido bien, se genera el ejecutable PicPas-linux, que tendremos que darle permisos de ejecución para
el usuario.
$ chmod u+x PicPas-linux
Ahora ejecutamos PicPas-linux desde la carpeta donde fue compilado, con:
$ ./PicPas-linux
Felicitaciones a Edson es un tremendo trabajo el que ha hecho y se que queda mucho por hacer pero me saco el sombrero.
-
Gracias a todos por el interés.
Primeramente quería aclarar que PicPas no es solo compilador, sino que incluye también una IDE y un depurador/simulador gráfico en tiempo real. Además el compilador tiene soporte completo para programar en ensamblador dentro del código Pascal. Y lo mejor es que es completamente gratuito.
De momento no he sacado versiones nuevas porque estoy experimentando nuevas características en otro compilador (como el manejo de punteros y arreglos) que luego se migrarán a PicPas. Esto se verá reflejado a partir de la versión 0.9. El proyecto está en desarrollo y a pesar de los muchos avances, aún falta mucho por hcaer para tener un compilador completo. Todas las colaboraciones son bienvenidas.
-
Hola Edson ¿Tito?
Estoy probando con SDCC 3.9.1 y con PicPas 0.8.8, portando un proyecto terminado en ensamblador, para probar que generan ambos y comparar.
Para SDCC uso el IDE CodeBlocks 17.12 y como ensamblador y enlazador gputils 1.5.1
PicPas va ganando por goleada y recién empieza el partido...
Siceramente lo que veo engorroso en C es el manejo de librerias, para mi es mas simple copiar y pegar código que incluir librerias
y estar peleándome horas para hacer andar algo porque no hay información de como se usa, termino mirando el código de las mismas
para poder entender como usarlas...asi que, como que no sirve.
En pascal con sus units casi que es la forma de trabajar, uno mismo se crea las units para el proyecto y luego las usa en otros proyectos.
No se, a lo mejor es que no le tome la mano a como se manejan en C o estoy muy acostumbrado a ensamblador que es en lo que siempre he desarrollado.
PicPas le veo futuro, estuve simulando y leyendo los manuales y tiene muy buena pinta, además vi el vídeo en youtube donde explicas muchos detalles.
Saludos
-
Hola Edson ¿Tito?
Estoy probando con SDCC 3.9.1 y con PicPas 0.8.8, portando un proyecto terminado en ensamblador, para probar que generan ambos y comparar.
Para SDCC uso el IDE CodeBlocks 17.12 y como ensamblador y enlazador gputils 1.5.1
PicPas va ganando por goleada y recién empieza el partido...
Siceramente lo que veo engorroso en C es el manejo de librerias, para mi es mas simple copiar y pegar código que incluir librerias
y estar peleándome horas para hacer andar algo porque no hay información de como se usa, termino mirando el código de las mismas
para poder entender como usarlas...asi que, como que no sirve.
En pascal con sus units casi que es la forma de trabajar, uno mismo se crea las units para el proyecto y luego las usa en otros proyectos.
No se, a lo mejor es que no le tome la mano a como se manejan en C o estoy muy acostumbrado a ensamblador que es en lo que siempre he desarrollado.
PicPas le veo futuro, estuve simulando y leyendo los manuales y tiene muy buena pinta, además vi el vídeo en youtube donde explicas muchos detalles.
Saludos
Hola @colo-des.
Por lo que he leído, el SDCC está todavía muy flojo en cuanto a desarrollo con PIC. Además, para usarlo depende de herramientas adicionales. PicPas es un compilador/ensamblador/enlazador/IDE/depurador/simulador, todo en uno.
PicPas es, probablemente, el compilador más optimo en cuanto a tamaño de código generado y el SDCC es probablemente el peor (De acuerdo a una de las últimas comparaciones que se hizo en Facebook).
Una de las limitaciones actuales de PicPas es que no compila bien cuando se maneja código en varias páginas. Ese es un tema pendiente que no he querido tocar hasta solucionar unos problemas referido con la evaluación de expresiones en el generador de código.
La ventaja de SDCC es que compila para varios CPU, además de los PIC. PicPas solo se especializa en PIC. Pero actualmente estoy trabajando en un compilador para 6502 (P65Pas) hermano del PicPas, y probablemente esté incluyendo luego al Z80 o a AVR.