Problema con inicialización de ps2

Problema con inicialización de ps2

de Joaquin Perez Mauri -
Número de respuestas: 9
Buenas, estamos teniendo problemas al momento de probar los programas. Antes de que se ejecuten los mismos, el programa queda en loop infinito cuando se llama a mouse_init. Esto sucede específicamente en la linea " djnz wait_loop_10". Agradeceríamos saber si hay alguna forma de arreglar esto, o si se les ocurre algo en lo que nos estemos equivocando. Muchas gracias.
En respuesta a Joaquin Perez Mauri

Re: Problema con inicialización de ps2

de Julio Perez -

Joaquín:

mirá las respuestas al mensaje anterior de este foro titulado "Problema con mouse_init", a ver si va por ahí.

julio

En respuesta a Julio Perez

Re: Problema con inicialización de ps2

de Joaquin Perez Mauri -

El problema persiste, el programa se sigue quedando en el loop mencionado. A pesar de que esta el comando djnz, utilizando el "stepi" e "info register" notamos que B nunca decrece de 35 (la constante cargada). Ya probamos con los switches en 0 y moviendo el mouse pero no se notó cambio. ¿Que mas podríamos probar? 


En respuesta a Joaquin Perez Mauri

Re: Problema con inicialización de ps2

de Julio Perez -

Joaquín, pero no pueden hacer la prueba con el ratón y ejecutar el programa paso a paso con stepi.

Cuando el ratón manda una palabra por la conexión ps2 lo hace a su velocidad. Si ustedes ejecutan paso a paso con stepi el programa se va a perder todos los cambios en las señales que suceden mientras el programa está detenido en el debugger.

Si les hace falta pueden poner un breakpoint después que termina mouse_init o entre palabras completas.

Si les hiciera falta poner un breakpoint en medio de una palabra para saber que está pasando pueden hacerlo, pero no pueden continuar la ejecución a partir de ahí. Pueden examinar los registros para ver qué sucedió hasta ahí y después tienen que iniciar la ejecución del programa desde cero, volviendo a inicializar el raton.

julio

 

En respuesta a Julio Perez

Re: Problema con inicialización de ps2

de Joaquin Perez Mauri -

Ya probamos haciendo break después de mouse init, pero como se quedaba en loop infinito probamos haciendo stepi dentro de la función de inicializacion. Haciendo esto nos dimos cuenta que el error es que en una de las subrutinas hay un comando "djnz" en el cual, por alguna razón, el registro b no baja. Eso ocurre en la función wait_loop_10 que se encuentra en la linea 253. 

En respuesta a Joaquin Perez Mauri

Re: Problema con inicialización de ps2

de Julio Perez -

Joaquín:

el comando stepi del debugger a veces falla cuando estamos ejecutando en la placa DE0. Es un bug conocido desde hace tiempo que no se ha podido resolver.

Pero además no deben usar stepi cuando están haciendo las pruebas con el ratón.

Por favor confirmá los siguiente:

- completaron los valores correctos de direcciones en el archivo plantilla_lab2.s como se pide en la sección a.2)

- en todos los casos están inicializando los puertos como se pide en el recuadro al final de la sección a.1)

- cuando prueban en forma manual comentan la linea en que invocan a mouse_init. De lo contrario mouse_init quedaría eternamente esperando por la respuesta del ratón.

- cuando prueban con el ratón se aseguran antes de invocar a mouse_init que el multiplexor esté seleccionado correctamente con SW[8] y que el ratón esté correctamente conectado. De lo contrario nuevamente quedaría colgada mouse_init porque nadie le responde.


Saludos,

julio

En respuesta a Julio Perez

Re: Problema con inicialización de ps2

de Joaquin Perez Mauri -

Verificamos que hicimos lo que dijiste, pero si bien funciona con el switch 8 en 1, cuando conectamos el mouse y cambiamos el switch 8 a 0, se queda en loop infinito y no entra a nuestra subrutina.   

En respuesta a Julio Perez

Re: Problema con inicialización de ps2

de Luciana Manfredi Hernandez -
Hola, seguimos todas las sugerencias que pusieron en el foro y nos pasa lo mismo que al grupo de Joaquín.

Existe la posibilidad de poder realizar una consulta vía zoom mañana luego de la clase de práctico?

Muchas gracias.