jump to navigation

Propuesta para congelar la versión 1.4 19 septiembre, 2011

Posted by pjmicrocontroladores in Información general, Lanzamiento de versión.
4 comments

En los últimos meses se ha avanzado de forma bastante lenta en el proyecto, pero creo que ha llegado el momento de congelar lo que sería la versión 1.4 del código. Pese a no haber cambios importantes, si se han realizado modificaciones para situaciones no contempladas en el código, así como arreglos en características no probadas hasta ahora. En especial he reescrito la implementación de la salvaguarda del entorno en interrupciones así como dado soporte para compilación de flotantes. Éstos últimos, sin embargo, son impracticables, por la gran cantidad de código que demandan, pero están a la espera de ser optimizados.

Abró por lo tanto una ventana de tiempo antes de congelar la versión 1.4. Todas las sugerencias y reporte de fallos o mejoras simples son ahora más que nunca bienvenidas. No obstante recordar que estoy siempre abierto a las mismas.

Saludos

Pedro José Ramírez Gutiérrez.

Anuncios

Novedades. (Re-actualizado) 11 mayo, 2008

Posted by pjmicrocontroladores in Lanzamiento de versión.
add a comment

Se ha publicado una nueva versión 1.1.0 que contiene dos correciones de distinta gravedad junto con los últimos cambios del control de versiones.

– [importante] Se han corregido varios errores en las rutinas de multplicación para 16 y 32 bits para 32 registros. Los errores las hacian inoperables.

– [Menor] Se ha reparado un error en la inicialización de variables en la rutina initializate. En la carga de las variables inicializadas la dirección de lectura no era calculada de forma correcta si el incremento sobrepasaba el rango de un byte.

Además, a partir de ahora, el código fuente se distribuirá en forma de parche. Ya está disponible en los ficheros de la forja (aquí) pero aconsejo conseguirlo siempre desde el control de versiones de la forja.

Se continuará con la versión de GCC 4.0.2 por el momento pero estoy comenzando la adaptación a la versión 4.3.0. En su momento se compararán ambas versiones y se eligirá la que produzca código más óptimo dado que por el momento las reparaciones publicadas por la GNU no afectan los microcontroladores PIC.

Por otro lado la versión para Windows será lanzada próximamente sobre el entorno cygwin.

Saludos

Pedro José Ramírez Gutiérrez

Actualizado: Añadida versión 1.1.1 del parche en la que se arreglan errores en las rutinas de multiplicacion sin signo de 16 bits. Descargas aquí .

Reactualizado: Y para rematar lanzo la versión 1.1.2 del parche que contiene la correción completa de la multiplicación. A la versión 1.1.1 le faltaban unos arreglos que olvide actualizar. Parche aquí.

Actualización 15 octubre, 2007

Posted by pjmicrocontroladores in Información general, Lanzamiento de versión.
9 comments

He subido al control de versiones de la forja una nueva actualización que establece un total de 129 modelos de microcontrolador soportados. Con esto se puede compilar código para la inmensa mayoría de microcontroladores del rango medio de Microchip. Los modelos soportados a nivel de compilación son:

Faltaría por escribir los archivos de cabecera, pero todavía se debe establecer un formato más conveniente que el actual antes de ampliarlo a todos los nuevos microcontroladores.

A partir de ahora el Bloq se convierte en Porting de GCC a PIC16, dado que el 98% de los PIC16 están portados. 

Saludos
Pedro José Ramírez Gutiérrez

Congelada versión 1.0.0 5 mayo, 2007

Posted by pjmicrocontroladores in Lanzamiento de versión.
17 comments

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.

Port a Windows del Porting de GCC a PIC16F877 21 marzo, 2007

Posted by pjmicrocontroladores in Información general, Lanzamiento de versión.
2 comments

Hola, estas semanas he estado más liado de la cuenta con la documentación del proyecto fin de carrera. Tenía un esqueleto echo, pero hay que actualizar partes, ampliar otras, o rellenar algunos huecos. Por ahora va bien. Aunque tarde, será presentado al gran publico para todos aquellos que quieran saber más a fondo como funciona el backend de PIC para GCC.

He colgado en la forja (1) los ejecutables del compilador C de GCC para el sistema Windows (en modo consola) para nuestro PIC, junto con la librería. El programa ha sido compilado usando el entorno DJGPP y el GCC adaptado a él, versión 4.0.1. Por lo tanto, los códigos C pueden no ser los mejores comparados con las nuevas versiones pero son totalmente funcionales. Con esto, todo aquel que quiera programar para PIC puede hacerlo, tanto desde Linux como desde Windows. El funcionamiento en ambos sistemas es similar, pero obviamente el sistema más moderno trabaja sobre Linux.

Además también he colgado el fichero de cabecera del PIC16F877 el cual, al ser incluido en los códigos en C, permitirá acceder a los registros especiales del microcontrolador de forma más fácil y cómoda, por su nombre.

En breve (creo) terminaré un mini-manual para programar los microcontroladores PIC en C usando un entorno totalmente abierto, con todo lo que ello supone. Incluye ejemplos básicos y avanzados e intentaré hacerlo multiversión (Linux/Windows).

He reajustado los paquetes de la forja para eliminar los antiguos y he fijado una versión 0.9.1 que incluye pequeños arreglos y el port a Windows. Solo queda recordar que el verdadero movimiento está en el control de versiones de la forja donde he profundizado en una metodología ignorada (e incluso criticada) durante la carrera pero realmente potente y eficaz.

Sin más, saludos.

(1) http://forja.rediris.es/frs/?group_id=101

Nueva versión 0.9 (Beta) 4 febrero, 2007

Posted by pjmicrocontroladores in Lanzamiento de versión.
add a comment

Tras adecuar en unos pocos lanzamientos la versión del proyecto, se lanza la primera versión beta. Siguiendo el consejo del usuario Ranganok Schahzaman, a partir de ahora se seguirá la numeración vv.mm.cc con vv versión, mm la modificación y cc corrección. Por lo tanto con la versión 0.9 se inicia la última modificación (no habrá 0.10.xx) que dará como resultado la versión final (es un decir) del porting de GCC a pic16F.

Esta tarde o mañana, se subirá todo el código al control de versiones de la forja. Desde ese momento se seguirá trabajando desde allí y solo se publicará la información de las correcciones que sean significativas. Dado que este proyecto constituye también mi proyecto fin de carrera, comenzaré a dedicarle mucho más tiempo al texto que al código. Por lo que desde ya, pido ayuda para probar el compilador.

Un saludo.

Nueva versión 0.6 1 febrero, 2007

Posted by pjmicrocontroladores in Lanzamiento de versión.
add a comment

Continuando el salto de versiones, sigo con la 0.6. Los cambios sensibles son el establecimiento de 32 registros virtuales de propósito general, y no 32 junto con el resto. También se ha solucionado la devolución de variables desde funciones. Hay cambios menores en el código como la eliminación de instrucciones no útiles o mejora de los comentarios.

Pronto una sorpresa.

Nueva versión 0.2.4 21 enero, 2007

Posted by pjmicrocontroladores in Lanzamiento de versión.
add a comment

En esta nueva versión se ha hecho la reserva de memoria de forma más estructurada. No es un cambio imprescindible en el código pero si necesario para la claridad del mismo. Además se ha cambiado la inicialización de las variables, en un nuevo bloque antes de main, permitiendo reservar la memoria de variables globales cuando realmente se conocen o no en la función main donde todavía pueden faltar algunas. Además para que las variables globales y estáticas definidas en ficheros distintos al de la función main, se permite indicar en la compilación del archivo de main la memoria extra a reservar por línea de comandos para guardar estas variables. Saludos.

Nueva versión 0.2.3 17 enero, 2007

Posted by pjmicrocontroladores in Lanzamiento de versión.
add a comment

En esta nueva versión se han arreglado la división en secciones del código fuente, de forma que se solucionan diversos problemas y se hace más eficiente. También se han incluido soporte para variables globales y estáticas, completando así otro objetivo importante en el proyecto. Hablando del desarrollo, se han alcanzado todos los objetivos iniciales, de forma que ahora se va recapitular y mejorar lo ya hecho, encontrar fallos y corregirlos. Todo aquel que encuentre algún fallo por trivial o pequeño que parezca ruego me ayude informándome del mismo (y si lo resuelve mejor que mejor 😉 ). Saludos.

Nueva versión 0.2.0 7 enero, 2007

Posted by pjmicrocontroladores in Lanzamiento de versión.
add a comment

Hola, esta nueva versión ha coincidido que la anterior era la 0.1.9 pero la siguiente sería la 0.1.10. El cambio de subversión ocurre por la inclusión del uso de la memoria completa del microcontrolador dentro de un programa. Con este hito alcanzado (y lo que es mejor cuando se planeó) el compilador da un gran avance en su creación, quedando muchos cosas por hacer, pero menos que las que quedaban la semana pasada. Hasta pronto.