Adiós, Facebook 
Teniendo en cuenta lo poco que lo usaba, el hecho de que en su momento me creé una cuenta por la tontería y de que me da grima que esta gente se apropie de las cosas que he subido (posts, fotos, vídeos, etc), creo que he hecho un gran favor a mi inteligencia desactivándola.

Ha llegado el momento de volver a descentralizar la web.

[ añadir comentario ] ( 1599 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3602 )
Noticias sobre Guineo 
La semana pasada nos lo comunicaron: Nos hemos quedado sin local para ensayar :-/. Ahora a buscar, a ver si hay suerte y podemos pilar alguno que sea baratito. Por otro lado, hay una mujer, Ico, que está empezando a cantar con nosotros. A ver qué tal sale :-). Una de cal y otra de arena.

[ añadir comentario ] ( 1330 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |  enlace relacionado  |   ( 3 / 2958 )
Adaptación del backend de SDCC para MSX 
He actualizado la información para adaptar el backend del compilador SDCC (http://sdcc.sourceforge.net) a la nueva versión de éste, la 2.9.0.

Más info en http://msx.avelinoherrera.com.

[ 2 comentarios ] ( 6155 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3422 )
Librería minimalista para el acceso a FAT32 
He desarrollado una pequeña librería minimalista para acceder al sistema de ficheros FAT32. Es una librería que ocupa muy poco:

- Aprox. 2Kb de memoria de programa para arquitecturas 8051.
- 538 bytes de memoria de datos.
- 142 bytes adicionales de memoria de datos por cada fichero que queramos mantener abierto.

La librería permite abrir para lectura y escritura ficheros existentes, crear ficheros y borrar ficheros. Aún no permite crear y borrar directorios. El acceso a la capa física se realiza a través de las funciones deviceReadSector y deviceWriteSector que se deben implementar en physical.c.

Descarga aquí.

Más info sobre el sistema de ficheros FAT32 aquí.

[ añadir comentario ] ( 1378 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3913 )
Compilador SDCC: problemas con el tarjet PIC16 
Hay una muy buena página que explica cómo utilizar el tarjet PIC16 (microcontroladores PIC con bus de instrucciones de 16 bits y bus de datos de 8 bits, no confundir con la numeración del modelo) del compilador cruzado de 8 bits SDCC:

http://www.freenet.org.nz/sdcc/

Aquí se explica paso a paso como partir de una snapshot reciente del SDCC y configurarla para que genere código para esta familia de microcontroladores. El soporte "oficial" del proyecto SDCC para la familia PIC16 es incompleto y requiere de algunos parches que esta página explica de forma muy sencilla.

Sin embargo, el autor no inicializa la pila ni en los scripts de enlazado (linker script) ni en el startup code (crt0.asm): El SDCC hace uso de los registros de indirección FSR1 y FSR2 de los PIC16 para simular la pila del sistema y estos registros, en muchos modelos de la familia PIC16, se inicializan con valores indefinidos en el power-on-reset. El resultado, siguiendo al pie de la letra este conocido tutorial es que nuestro código funcionará "a veces", según el micro haya inicializado los registros de indirección. Veamos el fragmento de código de startup (el fichero crt0.asm) utilizado originalmente:

_reset code

pagesel _main
goto _main


startup code

pagesel _main
goto _main

La modificación que he hecho inicializa los registros de indirección a un valor fijo en el código de startup:

code
_clean_startup:

; la pila apunta al final del banco 14 de la RAM
lfsr 1, 0xEFF
lfsr 2, 0xEFF
; EECON1.EEPGD = 1, TBLPTR accede a la memoria de programa
bsf 0xa6, 7, 0
; EECON1.CFGS = 0, TBLPTR accede a la memoria de programa
bcf 0xa6, 6, 0
pagesel _main
goto _main


_reset code

pagesel _clean_startup
goto _clean_startup


startup code

pagesel _clean_startup
goto _clean_startup

Si, además de esta modificación, añadimos al script del enlazador (.lkr) la línea:

STACK SIZE=0x100 RAM=gpr14

tendremos inicializada correctamente la pila en cualquier situación y el código que genere nuestro compilador funcionará siempre como es debido.

NOTA: En mi caso, he utilizado el PIC 18F6627 que posee un total de 16 bancos de memoria, en caso de utilizar un PIC con otra configuración de bancos de memoria habrá que cambiar las instrucciones LFSR del crt0.asm y la línea STACK del linker script acorde con el micro para el que se compila.

[ añadir comentario ] ( 1423 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3449 )

<< <Anterior | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Siguiente> >>