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 ] ( 1213 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 3197 )
Actuación de Guineo en El Fechillo 
Este sábado 24 de octubre vamos a actuar en El Fechillo, será la Gran Fiesta de la Música Hecha en Canarias, organizada por la asociación Canarias Habla y que también será retransmitida en directo por la emisora de radio del mismo nombre. Aún no sabemos el orden en el que tocaremos, las actuaciones empezarán a partir de las 20:30.

¡Pásense por allí!

[ añadir comentario ] ( 5093 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 2582 )
Una pequeña jam session hecha con el TBX-303 
Y el resto de la artillería pesada de mi humilde estudio :-). El tema no está muy allá, pero bueno, una jam es una jam, aunque sea electrónica.

http://www.youtube.com/watch?v=jacsAHBcSw0

ACTUALIZACIÓN: El fabricante del cacharro (Analogue Solutions) ha puesto en su página del TBX-303 un enlace a mi vídeo en youtube :-D.

[ añadir comentario ] ( 1341 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 2644 )
Un nuevo cacharro en la familia 
Hace algunos días que me llegó: El sintetizador TBX-303 de Analogue solutions, un clon más que brutal del mítico sintetizador de bajos TB-303 de Roland (el original ya no lo fabrica Roland). Tuve que intercambiar algunos correos con el fabricante ya que me llegó descalibrado, pero ahora, al fin ya está a punto... ¡Y como suena! :-)

http://www.users.globalnet.co.uk/~concu ... /tb303.htm

[ añadir comentario ] ( 1237 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 2331 )
Guineo en la final de Audiciones 2009 
Hemos quedado finalistas en el concurso de maquetas Audiciones 2009 organizado por la Fundación Canal de Isabel II de Madrid. El martes 30 de junio acudiremos a Madrid en viaje relámpago para defender nuestros temas ante el jurado de la final.

Ganemos o no, será una experiencia única y uno de los grandes saltos que vayamos a dar como grupo ^_^. Radio 3 aparece como colaboradora del evento, ignoro si lo retransmitirá.

http://guineo.avelinoherrera.com

EDITADO EL 21/7/2009: No pudimos asistir a la final debido a un problema que tuvimos con la compañia aérea (Vueling). Más detalles en la web de Guineo.

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

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