Dudas sobre piBacteria

Moderador: Fundadores

Avatar de Usuario
neuro_999
El infierno es su lugar
El infierno es su lugar
Mensajes: 161
Registrado: 18 Mar 2015, 19:03

Re: Dudas sobre piBacteria

Mensaje por neuro_999 »

Aqui te dejo el Kernel (es para funcionar si tienes el telcleator original de la plaquita de antonio que tenia un fallito e intercambiana el GPIO18 x el GPIO15
Si necesitas compilado para algo que has construido tu siguiendo los esquemas, tendria que recompilarlo para usar el GPIO18 porque sino te fallara una semifila de teclas.

Ya me contaras.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Avatar de Usuario
zx81
Demonio tercer orden
Demonio tercer orden
Mensajes: 502
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 15 times
Been thanked: 6 times
Contactar:

Re: Dudas sobre piBacteria

Mensaje por zx81 »

Gracias neuro_999 pero lo que buscaba no es un kernel.img, sino el pibBacteria.s. No sé porqué, el del repo de Antonio no consigo que funcione de ninguna manera. Es raro. Si puedes dejar el fuente te lo agradecería. :)
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
neuro_999
El infierno es su lugar
El infierno es su lugar
Mensajes: 161
Registrado: 18 Mar 2015, 19:03

Re: Dudas sobre piBacteria

Mensaje por neuro_999 »

¿pero que es lo que no te funciona? Porque yo si compilo de pibacteria del repo de Antonio me funciona perfectamente. Has probado si te funciona el kernel.img que te he pasado en tu pi? xq si no te funciona tampoco no te vale de nada el fuente.
Avatar de Usuario
zx81
Demonio tercer orden
Demonio tercer orden
Mensajes: 502
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 15 times
Been thanked: 6 times
Contactar:

Re: Dudas sobre piBacteria

Mensaje por zx81 »

neuro_999 escribió:¿pero que es lo que no te funciona? Porque yo si compilo de pibacteria del repo de Antonio me funciona perfectamente. Has probado si te funciona el kernel.img que te he pasado en tu pi? xq si no te funciona tampoco no te vale de nada el fuente.
Pues carga el moon.mem (todo por defecto como está en el repo de Antonio) y se queda con la pantalla mal dibujada y el borde haciendo colorillos como si fuera una carga turbo.

No he probado tu kernel.img porque se que ni siquiera va a arrancar. Resulta que yo cargo programas bare-metal usando u-boot. Y el bueno de u-boot lo deja todo preparadito para que arranque un kernel como si él no estuviera excepto por dos detalles, uno menor y otro muy, pero que muy mayor. El menor es que deja activo el "Strict Alignment Fault Checking". El mayor es que deja la tabla de excepciones, que debería estar en la dirección 0x00000000, donde Cristo perdió las alpargatas y, obviamente, no funciona.

Haciendo pruebas he arreglado los ejemplos de las "PracticasArm' de Antonio, pero quería probar también el piBacteria y no hay forma de que termine de funcionar. Por eso quería la versión apañada por ti, con alguno de los problemillas descritos solucionados.
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Dudas sobre piBacteria

Mensaje por antoniovillena »

Lo único que uso de la tabla de excepciones es la rutina IRQ

Código: Seleccionar todo

        ldr     r0, irqh        @IRQ vector
        lsr     r0, #2
        orr     r0, #0xea000000
        str     r0, [r2, #0x18]
Esta rutina es la que escribe en la tabla de excepciones. A la entrada r2 vale 0. Tan sólo tienes que cambiar r2 con la dirección de la nueva tabla de excepciones.
Avatar de Usuario
zx81
Demonio tercer orden
Demonio tercer orden
Mensajes: 502
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 15 times
Been thanked: 6 times
Contactar:

Re: Dudas sobre piBacteria

Mensaje por zx81 »

La solución la tengo, porque he probado con varios de tus ejemplos que usan las interrupciones (INT & FIQ) y funciona de coña. Incluso se lo he notificado al autor de la librería Circle para que lo solucionara en su software, cosa que ya ha hecho.

Por describir el problema, hay un registro de CP15 que, si no se han seleccionado la posibilidad de meter la tabla de vectores en 0xFFFF0000, permite poner la tabla donde quieras. Es el registro VBAR, sección 3.2.43, página 253 del ARM1176JZF-S TRM. El caso es que u-boot lo toca y no está claro que ponga lo mismo en cada versión del bootloader así que yo he puesto, tanto en tus ejemplos como en piBacteria.s:

Código: Seleccionar todo

mcr     p15, 0, r0, c12, c0, 0
como primera línea de código después de la directiva ".text", aprovechándome de que r0 ya está a cero cuando se comienza la ejecución, cosa que sí respeta u-boot (comprobado).

El problema viene después, porque se queda como en un "paralís", pantalla mal dibujada y borde de muchos colores, como si cargara un turbo. Ni cambiando la variable fast ni cambiando la imagen usada se soluciona. Por eso tenía curiosidad por saber si las versiones apañadas por neuro_999 iban mejor. Y me encontré con que los .zip se corrompen. Genial. :~(
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
neuro_999
El infierno es su lugar
El infierno es su lugar
Mensajes: 161
Registrado: 18 Mar 2015, 19:03

Re: Dudas sobre piBacteria

Mensaje por neuro_999 »

A ver si el sabado que andare con el ordenata donde esta el pibacteria subo el fuente. Pero es el mismo de antonio simplemente añadiendole puerto kemstom y sonido de load y save.

Enviado desde mi ONE A2003 mediante Tapatalk
Avatar de Usuario
zx81
Demonio tercer orden
Demonio tercer orden
Mensajes: 502
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 15 times
Been thanked: 6 times
Contactar:

Re: Dudas sobre piBacteria

Mensaje por zx81 »

Bueno, asunto resuelto. Aunque solo sirva para que quede constancia para el futuro, finalmente el otro problema es el bit1 del registro de CP15 c1, que u-boot deja activado y que es el 'Strict Alignment Fault Cheking'. Finalmente el inicio de piBacteria queda así:

Código: Seleccionar todo

.text
        iyi     .req      r0
        mem   .req      r1
        stlo    .req      r2
        pcff    .req      r3
        spfa    .req      r4
        bcfb    .req      r5
        defr    .req      r6
        hlmp    .req      r7
        arvpref .req      r8
        ix      .req      r9

@ Reset VBAR register modified by u-boot (added by zx81)
        mcr     p15, 0, r0, c12, c0, 0

@ Permito lecturas/escrituras desalineadas y cargo puntero a memoria
        mrc    p15, 0, r0, c1, c0, 0 @ read control register
        orr    r0, r0, #(1 << 22)    @ set the U bit (bit 22)
        bic	 r0, r0, #0x00000002   @ unset the A bit (bit 1) (added by zx81)
        mcr    p15, 0, r0, c1, c0, 0 @ write control register
        ldr    mem, memo

@ Esto es para configurar el buffer de video a 352x264x4
Ya temía que u-boot modificara algún otro oscuro registro más y ponte a buscarlo, pero afortunadamente no es así. Con esas dos modificaciones se puede usar u-boot que es más cómodo y rápido (cargas las imágenes vía TFTP). Gracias a Antonio y a neuro_999 por sus sugerencias.
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Dudas sobre piBacteria

Mensaje por antoniovillena »

Gracias a ti, zx81. Le echaré un vistazo al u-boot
Avatar de Usuario
zx81
Demonio tercer orden
Demonio tercer orden
Mensajes: 502
Registrado: 19 Oct 2013, 16:27
Ubicación: Valencia
Has thanked: 15 times
Been thanked: 6 times
Contactar:

Re: Dudas sobre piBacteria

Mensaje por zx81 »

antoniovillena escribió:Gracias a ti, zx81. Le echaré un vistazo al u-boot
Compilarlo es fácil. Lo que me resultó trabajoso es generar una imagen que funcione por el método correcto. Si te atascas (lo dudo mucho) no pelees. Pregunta y tus dudas serán respondidas en la medida de lo posible, claro. ;)
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
Responder

Volver a “Emulación”