Portando GCC a PIC.
3 participantes
Página 1 de 1.
Portando GCC a PIC.
Interesante proyecto open source, realizado por Pedro José Ramírez Gutiérrez, que ha hecho el porting del GCC completo para PIC, podeis encontrar más información en estas páginas:
http://pjmicrocontroladores.wordpress.com/
https://forja.rediris.es/projects/cls-pic-16f877/
Fernando Pujaico http://pic-gcc-library.sourceforge.net/data/ esta desarrollando las bibliotecas para este porting.
http://pjmicrocontroladores.wordpress.com/
https://forja.rediris.es/projects/cls-pic-16f877/
pjmicrocontroladores - 6 Diciembre, 2008
El compilador es totalmente funcional. Existen problemas en el tratamiento de ciertos tipos de arrays, pero estoy trabajando en ello. Sin embargo el porting es de GCC completo, es decir, es un compilador de C, no un subconjunto del lenguaje C como SDCC o similares. Además todo lo que compile GCC también se puede compilar con mi porting, ya que éste añade un nuevo target a la toolchain de GCC. Es decir, si alguien desarrolla las funciones de biblioteca necesarias, podría programar para PIC en C++, JAVA o Basic. No obstante ten en cuenta que los requisitos de estos lenguajes en memoria están muy por encima de la disponible en un PIC. Pero poder se puede.
Fernando Pujaico http://pic-gcc-library.sourceforge.net/data/ esta desarrollando las bibliotecas para este porting.
Posted in November 13th, 2008
by fernando in PIC-GCC, biblioteca
Se ha iniciado el grupo de desarrolladores de la biblioteca “PicGccLibrary”
El grupo está compuesto por estudiantes y egresados de la Facultad de Ingeniería Electrónica de la universidad nacional de ingenieria LIMA - PERU. Ademas se han incorporado desarrolladores de otras universidades a nivel mundial.
el lanzamiento de la primera version de la biblioteca esta programado para el 1ro de enero del 2009, pero se puede encontrar ahora una version previa completamente funcional desde el cvs
http://sourceforge.net/cvs/?group_id=229267
arcachofo- Participante Activo
- Mensajes : 91
Fecha de inscripción : 26/11/2008
Re: Portando GCC a PIC.
El proyecto en si es muy interesante, sin embargo, me surge la duda de las ventajas/desventajas con respecto a SDCC. ¿Alguien podría plasmarlas un poco más explícitamente?
Re: Portando GCC a PIC.
Bueno, PIC-GCC es un proting de GCC completo, osea que abre la posiblidad de compilar otros lenguajes como C++ basic, incluso java; SDCC solo es un compilador C. Este porting ya está hecho desde hace un tiempo para AVR, así que instalando GCC ya puedes programar AVRs; la idea es que al final los PIC tengan soporte incluido en el GCC, así que instalando GCC puedas programar para varios procesadores en varios leguajes, sin tener que instalarte un compilador para cada tipo de procesador y lenguaje.
PIC-GCC va a empezar por los PICs de gama media, con un conjunto de librerías bastante completas, documentadas en español, ya que está desarrollado por hispano-parlantes, las explicaciones y comentarios del código fuente también están en español. SDCC todavía no tiene gran cosa para estos PICs, tiene bastantes para pic18fXXX, pero no para 16fXXX.
Siempre es bueno tener donde elegir, actualmente hay muy pocos compiladores de código abierto para PIC.
En principio el código PIC-GCC debería ser muy facil de adaptar a SDCC y viceversa, además las librerías están escritas en su mayoría en asm, lo que facilita su utilización en SDCC...
Todo esto está en pleno desarrollo, así que se puede participar, hacer sugerencias de que funciones crees que debería incluir, etc. pedir y ofrecer ayuda en español...
PIC-GCC va a empezar por los PICs de gama media, con un conjunto de librerías bastante completas, documentadas en español, ya que está desarrollado por hispano-parlantes, las explicaciones y comentarios del código fuente también están en español. SDCC todavía no tiene gran cosa para estos PICs, tiene bastantes para pic18fXXX, pero no para 16fXXX.
Siempre es bueno tener donde elegir, actualmente hay muy pocos compiladores de código abierto para PIC.
En principio el código PIC-GCC debería ser muy facil de adaptar a SDCC y viceversa, además las librerías están escritas en su mayoría en asm, lo que facilita su utilización en SDCC...
Todo esto está en pleno desarrollo, así que se puede participar, hacer sugerencias de que funciones crees que debería incluir, etc. pedir y ofrecer ayuda en español...
arcachofo- Participante Activo
- Mensajes : 91
Fecha de inscripción : 26/11/2008
Re: Portando GCC a PIC.
Preguntaba Geo que cuales eran las posibles ventajas sobre SDCC por ejemplo; después de hacer algunas pruebas he observado un par de cosas:
SDCC se desarrolló para Z80, 8051 y posteriormente otros micros... por lo que he leido es bastante bueno para estos micros, ultimamente se está dando soporte para PICs, empezando por los de 16 bits(palabra de instruccion), son pics con bastante memoria, pero en los pic16f la memoria empieza a ser escasa y el tamaño del código generado es crucial; es posible que con el tiempo sdcc sea optimizado para pics pequeños, pero en el estado actual de las cosas no es así.
PIC-GCC se está desarrollando directamente para pics de la familia 16f, con la idea de generar un .hex lo mas pequeño posible, por eso las librerías están escritas directamente en asm, osea... no van a generar ni una sola instrucción que no sea estrictamente necesaria.
Otra cosa es que GCC resuelve las operaciones matemáticas si los valores son constantes, en cuyo caso no inserta esas rutinas en el código, cosa que no hacen otros compiladores.
De todas formas ya digo que esto es un proyecto en pleno desarrollo y todavía no ha llegado a su grado de optimización máxima.
Además en este foro vas a tener toda la información que necesites.
No creo que sea mejor o peor que otros... es distinto, es una opción más y es de código abierto...
SDCC se desarrolló para Z80, 8051 y posteriormente otros micros... por lo que he leido es bastante bueno para estos micros, ultimamente se está dando soporte para PICs, empezando por los de 16 bits(palabra de instruccion), son pics con bastante memoria, pero en los pic16f la memoria empieza a ser escasa y el tamaño del código generado es crucial; es posible que con el tiempo sdcc sea optimizado para pics pequeños, pero en el estado actual de las cosas no es así.
PIC-GCC se está desarrollando directamente para pics de la familia 16f, con la idea de generar un .hex lo mas pequeño posible, por eso las librerías están escritas directamente en asm, osea... no van a generar ni una sola instrucción que no sea estrictamente necesaria.
Otra cosa es que GCC resuelve las operaciones matemáticas si los valores son constantes, en cuyo caso no inserta esas rutinas en el código, cosa que no hacen otros compiladores.
De todas formas ya digo que esto es un proyecto en pleno desarrollo y todavía no ha llegado a su grado de optimización máxima.
Además en este foro vas a tener toda la información que necesites.
No creo que sea mejor o peor que otros... es distinto, es una opción más y es de código abierto...
Re: Portando GCC a PIC.
Ese tipo de detalles son los que me interesan .
Por lo pronto trabajo con los pics 18f, así que sigo con SDCC. Lo de la solución de constantes, habría que confirmar que SDCC no lo tenga, porque al final está basado en GCC ¿o no?
Por lo pronto trabajo con los pics 18f, así que sigo con SDCC. Lo de la solución de constantes, habría que confirmar que SDCC no lo tenga, porque al final está basado en GCC ¿o no?
Re: Portando GCC a PIC.
Hola Geo... primero que nada gracias por tu interés...
Por el momento PIC-GCC es solo un proyecto en marcha, no es alternativa a SDCC ni a ningún otro; lo que hace falta es gente que colabore,... desarrollar un proyecto de estos lleva mucho trabajo, sobre todo de depurado, y eso solo se consigue si hay muchas personas que lo prueban y reportan fallos o posibles mejoras; es imposible que los que desarrollan el proyecto prueben todas las posiblidades... les llevaría cientos de horas, mejor si esas cientos de horas las dedican a depurar el código, añadir funciones y extenderlas a otros pic.
En cualquier caso si solo trabajas con 18f por ahora PIC-GCC no te sirve de nada, en principio se va a dar soporte a 16f, luego vendrán más cosas...
Lo de la solución de las constantes, al menos las pruebas que yo he hecho con 16f, parece que no lo tiene, es posible que en 18f si esté implementado; eso lo puedes comprobar facilmente: compila un programa totalmente vacío y mira el memory map (sabrás cuanto toma el código de iniciación), luego pon una operación matemática con constantes con alguna multiplicación, que no sea demasiado básica, para que si hay diferencia, se note; vuelve a compilar y mira el memory map.
Solo he hecho algunas comparaciones con SDCC y BoostC y me extrañó bastante que los dos incluían el código de las operaciones matemáticas en vez de ser solucionanadas por el compilador, BoostC lo incluye directamente en el .asm y SDCC hace una llamada a función externa, pero el .hex generado aumenta notablemente de tamaño. Estariá bien hacer una comparativa entre varios compiladores, y ver como lo hace cada uno en distintas situaciones.
Por el momento PIC-GCC es solo un proyecto en marcha, no es alternativa a SDCC ni a ningún otro; lo que hace falta es gente que colabore,... desarrollar un proyecto de estos lleva mucho trabajo, sobre todo de depurado, y eso solo se consigue si hay muchas personas que lo prueban y reportan fallos o posibles mejoras; es imposible que los que desarrollan el proyecto prueben todas las posiblidades... les llevaría cientos de horas, mejor si esas cientos de horas las dedican a depurar el código, añadir funciones y extenderlas a otros pic.
En cualquier caso si solo trabajas con 18f por ahora PIC-GCC no te sirve de nada, en principio se va a dar soporte a 16f, luego vendrán más cosas...
Lo de la solución de las constantes, al menos las pruebas que yo he hecho con 16f, parece que no lo tiene, es posible que en 18f si esté implementado; eso lo puedes comprobar facilmente: compila un programa totalmente vacío y mira el memory map (sabrás cuanto toma el código de iniciación), luego pon una operación matemática con constantes con alguna multiplicación, que no sea demasiado básica, para que si hay diferencia, se note; vuelve a compilar y mira el memory map.
Solo he hecho algunas comparaciones con SDCC y BoostC y me extrañó bastante que los dos incluían el código de las operaciones matemáticas en vez de ser solucionanadas por el compilador, BoostC lo incluye directamente en el .asm y SDCC hace una llamada a función externa, pero el .hex generado aumenta notablemente de tamaño. Estariá bien hacer una comparativa entre varios compiladores, y ver como lo hace cada uno en distintas situaciones.
Re: Portando GCC a PIC.
por Pikitin el Mar Ene 13, 2009 1:11 pm
Solo he hecho algunas comparaciones con SDCC y BoostC y me extrañó
bastante que los dos incluían el código de las operaciones matemáticas
en vez de ser solucionanadas por el compilador, BoostC lo incluye
directamente en el .asm y SDCC hace una llamada a función externa, pero
el .hex generado aumenta notablemente de tamaño.
Pues es curioso, pero he estado intentando reproducir el tema de resolver operaciones matematicas con constantes en SDCC, y resulta que ahora siempre me las resuelve...
No recuerdo exactamente como lo hice la vez anterior, pero ahora he provado con todas las combinaciones que se me ha ocurrido y siempre las resuelve el compilador.
Queria comentarlo, porque seria un fallo mio o una mala instalacion de SDCC,... quizas en alguno de mis cacharreos cambie o me cargue algo...
Re: Portando GCC a PIC.
¿O una versión anterior?Pikitin escribió:Queria comentarlo, porque seria un fallo mio o una mala instalacion de SDCC,... quizas en alguno de mis cacharreos cambie o me cargue algo...
Re: Portando GCC a PIC.
Si... tambien puede ser a causa de una versión anterior... la verdad es que ahora no tengo idea de que pudo ser, en cualquier caso me alegra que ahora tenga las operaciones con constantes resueltas por SDCC.
Lo importante es que esta cuestión ya está resuelta o siempre lo estubo y fué algún fallo mío...
Lo importante es que esta cuestión ya está resuelta o siempre lo estubo y fué algún fallo mío...
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|