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

Nueva actualización. 13 octubre, 2008

Posted by pjmicrocontroladores in Información general, Parches.
3 comments

Buenas

He subido una nueva revisión al control de versiones. Por un lado arregla un fallo con las llamadas sobre punteros a funciones (gracias a Fernando Pujaico por el aviso). Por otro lado cambia la forma de compilar PIC-GCC.

Ahora, para configurar GCC una vez aplicado el parche se debe usar:

../<fuentes_GCC_parcheadas>/configure   -target=pic -enable-languages=c -with-as=/usr/local/bin/gpasm -with-ld=/usr/local/bin/gplink

donde -with-as y -with-ld deben ser las rutas absolutas de gpasm y gplink respectivamente instaladas en el sistema. Así, se acaba con la ambiguedad de la ruta de las GPutils a usar en el código fuente, la ruta por defecto de instalación del paquete o la ruta si se contruyen a partir de las fuentes.

Saludos

Pedro José Ramírez Gutiérrez.

Noticias buenas y otras no tanto. 29 mayo, 2008

Posted by pjmicrocontroladores in Información general.
add a comment

Primero las relativamente malas. He borrado todos los foros de la forja. El motivo es que no he recibido ningún mensaje que no fuera anunciando pornografía y productos para hacer crecer el pene. Ante el aumento incontrolado de este tipo de mensajes y la imposibilidad de filtrarlos de manera cómoda, he cerrado el foro. Seguis teniendo los comentarios del blog abiertos para cualquier tema.

Las noticias buenas. Fernando Pujaico Rivera ha decidido comenzar a desarrollar bibliotecas de dispositivos para PIC-GCC. Empieza de forma bastante fuerte y en pocas semanas lanzará las primeras betas del código. Por el momento, ya ha abierto un nuevo proyecto en sourceforge para empezar a subir las primeras alphas. Lo tenéis aqui. También podéis echar un vistazo a su página web donde ya publico una biblioteca multiplataforma para acceso al puerto serie entre otras.

Por último, como Fernando me ha dado un poco de envidia, os subo una pequeñisima biblioteca para generar retrasos de milisegundos. Os lo cuelgo en los documentos de la forja, dado que no puedo hoy subir ficheros (ya lo arreglarán). Aquí delayms.

Saludos

Pedro José Ramírez Gutiérrez

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

II Concurso Universitario de Software Libre (actualizado) 9 agosto, 2007

Posted by pjmicrocontroladores in Información general.
1 comment so far

A partir del 15 de Septiembre estará abierto el plazo para la inscripción en la segunda edición del Concurso Universitario de Software Libre. Desde éste blog recomiendo que todo aquel ingeniero universitario que esté pensando en comenzar su proyecto de fin de carrera participe en el concurso por tres razones. Primero conseguiréis publicidad solo con participar, tanto del proyecto como de vuestra forma de trabajar. Segundo, os impulsará a avanzar en la creación del proyecto ayudando a no dejarlo incompleto. Y tercero, podíes ganar dinero, pero lo que es seguro es que no lo perderéis :).

Solo resta dejar el enlace. 

http://concurso-softwarelibre.us.es/index.html

Animo.

 PD: Gracias a Fitopaldi por la corrección. Eso me pasa por leer demasiado rápido.

PD 2: El plazo ya abierto finaliza el 31 de Octubre.

Concurso Software Libre. 28 mayo, 2007

Posted by pjmicrocontroladores in Información general.
add a comment

Tras ocuparme de varios asuntos de importancia puedo, con más de dos semanas de retraso, anunciar que finalmente gane el primer premio en la categoría de sistemas. Poco puedo decir que no hayan dicho ya los compañeros del concurso, pero me apetece resaltar el buen ambiente vivido durante los días de estancia en Sevilla. Desde un primer momento no existieron competidores sino aficionados del software libre lo que unido al excelente trato por parte de los organizadores del concurso hicieron que más de uno deseara alargar la fase final del concurso. Espero verlos a todos en próximos eventos.

Solo me resta comentar que en unas semanas daré un fuerte empujón al proyecto y posiblemente podré anunciar el nacimiento de otro bastante relacionado. Hasta entonces saludos.

Programador por puerto USB para PIC 23 abril, 2007

Posted by pjmicrocontroladores in Información general.
33 comments

Tras mucho dilucidar, el mejor programador con diferencia para PIC por puerto USB que he encontrado, es el PICkit 2(1) de la casa Microchip. Gracias a una reciente actualización puede programar la mayoría de microcontroladores PIC, desde los PIC12 hasta los dsPIC3 pasando por los PIC18 y PIC24. Es realmente barato comparado con otras alternativas como el GTP USB plus. Además es abierto (que no libre), por lo que se puede bajar tanto las fuentes del programa para Windows, como los esquemas del programador desde la página de Microchip. Merece la pena comprarlo dado que los componentes salen igual en precio que el programador montado, pero es una buena experiencia para los que les gusta el “cacharreo”.

Para Linux, lamentablemente Microchip no da soporte, pero hay tres alternativas que funcionan con la primera versión y están trabajando para soportar también la segunda. Son pk2(2), pyk(3) y piklab(4).

Aquellos que piensen adquirirlo, les recomiendo no hacerlo directamente a Microchip cuyos portes son de 25 euros (para España), sino hacerlo en alguna tienda especializada cercana. En mi experiencia personal lo he adquirido en Farnell, pese a que sus portes son de 9 euros, pero en un día lo tienes en casa y se puede aprovechar además para surtirse de gran variedad de componentes más baratos que en la “tienda de la esquina”.

Solo me queda saludar y recordar que no se han encontrado ningún fallo en el código, pero si se han introducido varias optimizaciones en la versión del control de versiones.

(1) http://www.microchip.com/pickit2
(2) http://home.pacbell.net/theposts/picmicro/
(3) http://groups.google.com/group/pickit-devel
(4) http://piklab.sourceforge.net/

Versión 0.9.2, y adiós concurso. 8 abril, 2007

Posted by pjmicrocontroladores in Información general.
2 comments

Con el lanzamiento de la versión 0.9.2 del porting de GCC a PIC16f877 se termina el desarrollo para el concurso universitario de software libre.  Se han lanzado el código para Linux que ya incluye unas mini instrucciones para compilarlo y el código precompilado para windows. Se han añadido también un archivo auxiliar con las cabeceras de los tres microcontroladores que son soportados de base. Si alguien quiere ayudar al proyecto sin ponerse a desarrollar código puede escribir más cabeceras (apoyarse en el archivo p16f877.h que es más fácil) y ponerse en contacto conmigo por aquí.

Un participante en el concurso recomendó hacer un resumen de los proyectos. En lo que concierne a éste, realmente es muy complejo hacer un resumen que sea comprensible para todo el mundo. Lo intentaré explicar en una frase: He conseguido que GCC compile todo código C para el microcontrolador PIC16F877 de Microchip, de forma completa y correcta, en un entorno totalmente libre, permitiendo además compilar código para muchos más microcontroladores de la familia PIC16F.

Un resumen puede servir para mucho o para muy poco. Lo que no cabe duda es que la frase anterior debería ser analizada palabra por palabra para comprender realmente el alcance del proyecto.

Desde que comencé sé que éste no es un proyecto para la gran masa. Solo los buenos (hay que serlo para usar Uc) programadores que elijan C y elijan la familia PIC16F de Microchip, pueden interesarse por el proyecto y un 0.01 % de esos programadores aportarán algo al mismo. Sin embargo he conseguido que el compilar sea completo y correcto, que es mucho más de lo que nadie había conseguido en el software libre.

Con más ayuda podría haber soportado desde el código a todos los controladores de la familia 16 y comenzar mucho antes con la familia PIC18. Tengo que cambiar la falta de apoyo por tiempo, pero aún así, es notable el avance conseguido en un periodo tan corto. Pese a permanecer en la versión beta (por querer una versión 1.0 totalmente terminada y probada) el código esta completo.

Simplemente resta decir que el desarrollo seguirá hasta contener a todos los microcontroladores de la familia PIC16F. Se hará un alto en el camino para realizar librerías de dispositivos y se continuará después con el porting de GCC a los PIC18. Algunos juzgaron que la declaración de intenciones de los primeros mensajes del blog era inalcanzable. Lo siento chicos pero ésta ves os equivocasteis. 🙂

Saludos y hasta pronto.

Manual de usuario 7 abril, 2007

Posted by pjmicrocontroladores in Información general.
add a comment

He publicado en la forja el manual de usuario. Solo expone la sintaxis especial que se usa en el porting. Para la sintaxis completa de GCC se recomienda leer el manual de usuario de GCC.

Se han hecho numerosos cambios en el software, pero la mayoría son optimizaciones por lo que el código sigue funcionando pero mejor. De aquí al lunes publicaré otra versión en la forja para Linux y Windows, con la que daré por finalizado el desarrollo para el concurso universitario de software libre.

Sin embargo el desarrollo ni mucho menos se para, sino que seguirá principalmente en el control de versiones. Los próximos objetivos son afianzar el port actual, añadir más procesadores de la familia PIC16F de base y comenzar a planificar el porting de los PIC18, siguiente paso en la evolución. Pese a que la encuesta sobre los PIC12 no ha tenido casi aceptación (fundamentalmente por que solo los usuarios de la forja pueden votar) por ahora y a menos que alguien cambie mi parecer, yo no realizaré el port de los PIC12, dado que no tienen capacidad ni potencia como para ser programados en C.

Recuerdo que todo aquel que desee la última versión deberá preferiblemente tomarla del repositorio de subversión de la forja. Recuerdo también el comando:

svn checkout https://forja.rediris.es/svn/cls-pic-16f877

Sin nada más que decir, un saludo a todos.

Pequeños cambios, optimizaciones y fallos encontrados. 23 marzo, 2007

Posted by pjmicrocontroladores in Información general.
add a comment

Se ha creado una optimización para configuraciones de 32 registros virtuales por la cual, las llamadas a las operaciones de multiplicación y división son mucho más cortas y además no usan memoria matemática intermedia. Así eliminamos la carga inicial y posterior lectura desde esta memoria y reducimos el tamaño de memoria necesaria para almacenar valores intermedios. Debido al carácter impositivo de la solución tomada, se necesitan conocer los registros exactos donde cuadrarán el código para poder generarlo. Por ello, solo se ha implementado cuando se dejan los 32 registros virtuales por defecto, necesitando en los otros casos el antiguo método.

También se han corregido dos fallos en el código. Uno en el fichero de cabecera p16f877.h de la forja donde se usaban en cierto punto comentarios en ensamblador sin comentarlo para C, por lo que se producía un error en su ejecución. El otro error más sutil se producía cuando se usaban los modificadores por línea de comandos para des-/activar la cabecera de interrupción y la memoria compartida.

Estoy ahora solucionando un pequeño fallo en la optimización introducida para las funciones tipo divmod por la que para dos operaciones de idénticos operandos una para dividir y otro para el resto, se use una sola operación y no dos.

Sigo con la idea de crear un manual para el porting que vaya desde el nivel básico hasta un nivel más avanzado, pero es difícil sacar tiempo sobre todo para decidir qué es un nivel básico y qué uno avanzado. Si no encuentro una máquina que multiplique el espacio/tiempo en las próximas semanas empezaré a hacer pequeñas entregas que se compliquen poco a poco, hasta confeccionar con ellas el manual completo.

Por otro lado todos los cambios están en el control de versiones. Las versiones de Windows se compilarán en con grandes cambios y no para estos avances intermedios, ya que si no sufriremos otra “inundación” de versiones. Saludos.