jump to navigation

Congelada versión 1.0.0 5 mayo, 2007

Posted by pjmicrocontroladores in Lanzamiento de versión.
trackback

Hoy lanzo la versión estable del porting de GCC a PIC16F877. Durante un mes he realizado profundas pruebas del compilador y le he usado en proyectos reales con el 16F877. Tras observar los resultados y no encontrar ningún tipo de fallo en el código de la versión 0.9.2 usado durante todo éste tiempo, he decidido congelar ésta como la versión 1.0.0. Realmente bastante antes se mostraba un código resultante robusto y fiable, pero no solo tenía que suponerlo sino comprobarlo con mis propios ojos.

El trabajo de desarrollar un compilador de C para PIC16F877 está completado, pero como ya he comentado otras veces, el objetivo desde mediados del proceso de desarrollo es un compilador, no solo para éste microcontrolador, sino para toda la familia 16F. Pese a que también he probado el microcontrolador PIC16F73 con idénticos y excelentes resultados, debo realizar pruebas más profundas con este último. Llegará un punto en el que tenga que presuponer que ciertos microcontroladores son soportados por el compilador, pero siempre me ha gustado andar con pies de plomo.

Lamentablemente es imposible que adquiera todos los modelos del 16F para comprobar los resultados por lo que pido ayuda para que todo aquel que desee programar en C otros modelos PIC16F, lo pruebe y me comente los resultados. La adaptación del compilador a otro modelo únicamente supone introducir una línea de código, por lo que no se exigen conocimientos avanzados para poder ampliar el compilador. No obstante estoy preparando, siempre que el trabajo me deje un poco de tiempo, un documento para realizar paso a paso la modificación.

Hasta entonces, saludos a todos.

PD: El proyecto ha sido elegido como finalista del I concurso universitario de software libre. Pese a que siento un gran honor de formar parte de los 7 finalistas, creo que es digno reconocer que todos los proyectos que han trabajado se merecen una enorme ovación. Enhorabuena a todos.

Anuncios

Comentarios»

1. JuanPablo - 13 mayo, 2007

Supongo que ya lo sabes, pero con lo que has hecho ya tienes material de sobra para tu tesis. De hecho es notablemente mejor que la gran mayoría de tesis que se presentan en el pregrado.

Felicitaciones.

2. pjmicrocontroladores - 13 mayo, 2007

Muchas gracias Juan Pablo.

3. Ranganok Schahzaman - 14 mayo, 2007

Felicidades por el premio.

4. pjmicrocontroladores - 15 mayo, 2007

Gracias Ranganok Schahzaman

5. Juan Gonzalez - 15 mayo, 2007

Enhorabuena por este magnífico proyecto y sobre todo por haber ganado el concurso de Software libre. Una de las cosas que más de echaba de menos en los PICs era precisamente que no tenían un compilador de C libre decente… y cuando leí en Barrapunto que había un concurso de software libre y uno de los proyectos era el tuyo… casi me da algo de la alegría 🙂

Muchísimas gracias

6. pjmicrocontroladores - 15 mayo, 2007

Gracias a ti Juan Gonzalez por la enhorabuena.

7. john - 23 mayo, 2007

quisiera por favor tener un circuito programador del pic 16f877a
y algo de programacion para el mismo
si me pudieran hacer el favor les quedaria eternamente agradecido

8. pjmicrocontroladores - 24 mayo, 2007
9. Alan Carvalho de Assis - 24 agosto, 2007

Olá Pedro José,
parabéns pelo excelente trabalho de portar o GCC para o PIC16F877.
Espero que você continue com este projeto e adicione suporte aos microcontroladores da série PIC18 também.

Saludos,

Alan

10. pjmicrocontroladores - 24 agosto, 2007

Hola Alan

El porting de los 18 se hará, pero quizas no directamente por mí. Cuando haya algo seguro lo comentaré por el blog.

Cumprimentos e agradecimentos
Pedro José Ramírez Gutiérrez

PD: El saludo final es de google, perdon si he dicho una barbaridad.

11. Alan Carvalho de Assis - 26 agosto, 2007

Ola Pedro,
gracias.

Cuando usted descobrires que o porte para os PIC18 está pronto por favor me avise. Meu email é: acassis _AT_ gmail.com

Si google traduziu mui bein é Cumprimentos e Agradecimentos.

Por enquanto irei tentar usar o SDCC para o PIC18F2680. Usted planeja agregar the porte do PIC no gcc oficial? Da mesma forma como o Atmel AVR já tem suporte direto no gcc padrão.

Saludos,

Alan

12. pjmicrocontroladores - 26 agosto, 2007

Hola Alan

Si, la idea es traducir todo el proyecto al ingles y después unirlo a GCC de forma oficial.

Saludos
Pedro José Ramírez Gutiérrez.

13. mad93 - 13 marzo, 2008

Hola, he probado de compilar gcc con tu parche y alguna cosa no hago bien, pues me da un error en la compilación. He descargado la versión de gcc 4.0.2 y la versión 1.0 de pic-gcc. He descomprimido los dos ficheros, hecho el configure como se indica y seguidamente el make.

../gcc-4.0.2/configure -target=pic -enable-languages=c

Copio el error:

make[2]: Entering directory `/home/mad93/Documents/prog/gccpic/pic-gcc/gcc’
/home/mad93/Documents/prog/gccpic/pic-gcc/gcc/xgcc -B/home/mad93/Documents/prog/gccpic/pic-gcc/gcc/ -B/usr/local/pic/bin/ -B/usr/local/pic/lib/ -isystem /usr/local/pic/include -isystem /usr/local/pic/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -DDF=SF -Dinhibit_libc -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc-4.0.2/gcc -I../../gcc-4.0.2/gcc/. -I../../gcc-4.0.2/gcc/../include -I../../gcc-4.0.2/gcc/../libcpp/include -DL_mulqihi3_32 -xassembler-with-cpp -c ../../gcc-4.0.2/gcc/config/pic/libgcc.S -o libgcc/./_mulqihi3_32.o
as: unrecognized option `-c’
make[2]: *** [libgcc/./_mulqihi3_32.o] Error 1

Como digo no sé si he hecho algo mal, pero la compilación como ves da error al empezar a compilar el código de pic-gcc

14. pjmicrocontroladores - 13 marzo, 2008

Hola mad93

Echale un ojo a
https://pjmicrocontroladores.wordpress.com/2006/11/15/documento-compilar-porting-de-16f877-para-gcc/

Tu error se produce porque no instalas las gputils o las instalas en otra carpeta. Edita el archivo pic.h de acuerdo a tus necesidades y configura y compila de nuevo para que coga los ejecutables buenos (en este caso gpam).

Saludos
Pedro José Ramírez Gutiérrez

15. Mad93 - 14 marzo, 2008

Muchas gracias por responder tan pronto.

La verdad es que había seguido la página que comentas y tenia gputils instalada.

El problema, o no, es que en el enlace que me has sugerido menciona que por defecto los enlaces son a /usr/bin y en cambio en el pic.h (versión 1.0) tenia configurados por defecto los binarios en /usr/local/bin.

Muchas gracias por la ayuda.

Puede que aquí me desvíe, pero después de compilarlo existosamente con soporte de c, lo he hecho con soporte de c i c++, podria usar c++ entonces o no funcionaria?

16. pjmicrocontroladores - 14 marzo, 2008

Hola Mad93

Si lo instalas como paquete en Linux, las gputils van a /usr/bin. Sin embargo si las compilas a partir de las fuentes se instalan en /usr/local/bin (o justo al reves). Yo las compilo, pero la gente las suele usar con los paquetes, por eso nunca me queda claro donde están. Llevo tiempo queriendo arreglar eso, pero … hay que ponerse.

Respecto a C++, yo he portado GCC a PIC. He realizado todo el backend de GCC, por lo que puedes compilar C, C++, Java, basic, … y cualquier lenguaje que compile GCC. Sin embargo todos estos lenguajes menos C necesitan ficheros y bibliotecas de apoyo para ser funcionales y estas no estan (todavia) portadas. Por ejemplo en Java al crear una objeto con new, en realidad llamas a un tipo de malloc que da el espacio, y al terminar el uso del objeto, el recolector de basura usa algo parecido a free. Esto habría que implementarlo para crear programas de java, pese a que el código de Java si compila.

Saludos
Pedro José Ramírez Gutiérrez.

17. Mad93 - 14 marzo, 2008

Muchas gracias por tu ayuda, tiempo y código 😉

En lo del directorio por defecto, en gentoo al menos, es /usr/bin, así que supongo que debe ser /usr/local/bin para el paquete ‘suelto’.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: