PDA

Ver la versión completa : Flashear el firmware para encontrar bugs



Lizardos
23/11/2004, 23:47
Hola k tal. A ver otra dudita...
Me ha salido un bug que cuelga mi programa en la gp32 y sin embargo furnciona perfectamente en el geepee32. Estoy pensando en cambiar el firmware de mi consola(BLU original y virgencito) por uno con manejo de excepciones (Mr. Spiv tiene uno que yo sepa) y necesitaría consejo de alguien que lo haya usado:
si merece la pena o no, si es seguro, y si realmente me va a dar información válida para depurar o estoy perdiendo el tiempo.

Por cierto el firmware del que hablo se llama Bios Monitor.
Saludetes

PD: Y ya que pregunto y para no crear un nuevo hilo.. alguien sabe por qué se puede producir una excepción de alineamiento... en C??? Parece una excepción de muy bajo nivel... fallo del compilador?

Lizardos
24/11/2004, 23:42
nadie usa el bios monitor??

Entonces no debe de servir para nada...

oankali
25/11/2004, 08:13
No conozco a nadie que lo use. No sé que tal vas tu de ensamblador pero tengo entendido que el bios monitor no te dirá en que línea del código C tienes el error.

En cuanto a la excepción de alineamiento, podría ser por alguna estructura que hayas creado y que no use el alineamiento que hayas previsto en los parámetros de compilación.
A veces tengo problemas de este estílo, pero es entre el VC i el GCC i no entre el Geepee32 i la GP32 que me los encuentro.
La opción de compilación que uso en el makefile es

-mstructure-size-boundary=8

A ver si te sirve de algo.

Oankali

Aiken
25/11/2004, 08:56
Escrito originalmente por Lizardos
Hola k tal. A ver otra dudita...
Me ha salido un bug que cuelga mi programa en la gp32 y sin embargo furnciona perfectamente en el geepee32.


por si te sirve de ayuda, asegurate que todas las variables, por ejemplo arrays estan incializadas aunque sea a cero.

parece una tonteria, pero el geepee asume un 0 creo y sin embargo en la gp32 real peta.

a mi me ocurria eso en un par de ocasiones.

tambien que este inicializado el sistema de archivos GpFatInit o similar, etc.

En cuanto al biosMonitor yo tambien ando tengado ;)
Aiken

Lizardos
25/11/2004, 15:20
Escrito originalmente por oankali
No conozco a nadie que lo use. No sé que tal vas tu de ensamblador pero tengo entendido que el bios monitor no te dirá en que línea del código C tienes el error.

En cuanto a la excepción de alineamiento, podría ser por alguna estructura que hayas creado y que no use el alineamiento que hayas previsto en los parámetros de compilación.
A veces tengo problemas de este estílo, pero es entre el VC i el GCC i no entre el Geepee32 i la GP32 que me los encuentro.
La opción de compilación que uso en el makefile es

-mstructure-size-boundary=8

A ver si te sirve de algo.

Oankali

Gracias a los dos por vuestra ayuda. Yo también creo que es por los flags del compilador. Usaba ese flag, así que lo he ampliado a 32. Ayer lo compilé con los flags de -falign... y aguantó bastante más, espero que ahora quede estable. Si no probaré -malignment-traps a ver si ya traga.

Se trataba de un fallo aleatorio cuando llevabas jugando un buen rato, por lo que dudaba que fuese del código, y quería conocer la causa (por lo que he visto del bios monitor aparte del volcado de registros y memoria te dice cual ha sido la excepción), y un betatester me dijo lo de la excepción de alineamiento.

Saludos y si mi prueba va bien nueva versión para esta tarde. Lizardos.