Anuncios Google

interrupt dispatcher

Hola,

¿Alguien a analizado alguna vez el código del interruptDispatcher.s? Hay algunas cosas que no me cuadran, por ejemplo, ¿cómo se atienden interrupciones simultáneas? o ¿cuál es el orden de prioridad de las interrupciones?

Si alguien controla esto le agradecería que me echara una mano.

Un saludo,

Elur.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Creo que solo soporta una

Creo que solo soporta una interrupción a la vez porque la memoria que se usa para la pila es muy pequeña.

Sí, en principio el

Sí, en principio el interruptDispatcher está programado para que no se acepten interrupciones de varios niveles. Para eso, cuando se va a atender una interrupción, estas se deshabilitan de modo que no puede entrar otra interrupción hasta que se termine de atender a la actual. Pero ¿qué ocurre cuando dos periféricos interrumpen a la vez? ¿Cuál de las dos interrupciones se atiende primero?

Gracias

Imagino que según el orden de

Imagino que según el orden de los bits del registro IF siendo 0 el que tiene más prioridad, pero se podría mirar en el código... Vamos, lo que pone aquí:

http://nocash.emubase.de/gbatek.htm#dsinterrupts

http://nocash.emubase.de/gbatek.htm#gbainterruptcontrol

 

gracias

Gracias a todos los que habéis respondido.

En realidad no he solucionado mucho. Porque los enlaces que me habéis pasado ya los tenía y ahí no se especifica lo que yo he preguntado. Me imagino que no se ha comprobado, aunque la experiencia de algunos en de gran ayuda.

Se ejecuta la primera que llega, ¿pero si llegan dos a la vez? Las que llegan mientras se ejecuta una, se ignoran? Me gustaría tener alguna respuesta más concreta pero por lo que veo va a ser didícil.

Muchas gracias otra vez.

Si llegan 2 a la vez, se

Si llegan 2 a la vez, se ponen a 1 los bits correspondientes en IF y salta al handler de interrupciones. Después, salta a las funciones correspondientes por orden.

Tiene sentido, ¡Muchas

Tiene sentido,

¡Muchas gracias!

Imagen de kNightFox

Mirate este

Mirate este enlace

http://www.coranac.com/tonc/text/interrupts.htm

Es de GBA, pero para el caso...

A ver si sacas algo en claro!
 
Pero por experiencia, diria que la primera que llega se ejecuta, y sospecho que las demas se ignoran (lo se por el efecto wave que he hecho en el speed trap, que funcionava bien en el emu y no en el hard).


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.