Dudas sobre el codigo fuente

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: Dudas sobre el codigo fuente

Mensaje por arisma »

Ops, Leyendo....

Avatar de Usuario
Yn$an€
Desarrollador
Desarrollador
Mensajes: 258
Registrado: 11 Feb 2011, 21:44

Re: Dudas sobre el codigo fuente

Mensaje por Yn$an€ »

Duda:

Código: Seleccionar todo

tError cControladorMemoria::validar(void)
{
   tComponente tipo_componente;
   void* componente = mapeo.obtenerComponente(orden.obtenerDireccion(), &tipo_componente);


Por que puntero a void y luego el casting?? Para poder utilizarlo en función del tipo de componente que envíe la orden en en el futuro?

Por cierto, lo del doxygen es muy fácil. Lo difícil es cumplir con un mínimo de decencia el cubrir los campos de la descripción! :lol:

No me mates, m0skit0, :muerte: pero para hacer un draft he utilizado los comentarios de las clases que hiciste en este mismo foro. [No es del todo offtopic] Te parece bien?

EDIT: Documentando el código, en una de tus explicaciones a yosoy_bostero aparece aclarado
... after all, we're all alike.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Dudas sobre el codigo fuente

Mensaje por m0skit0 »

Supongo que te refieres a void* componente. Es para poder usar cualquier clase, ya que si usamos un puntero a una clase específica, no podríamos acceder a otros componentes que no sean de esa clase.

Y en cuanto a los comentarios, me parece perfecto :oki:
Imagen

Avatar de Usuario
Yn$an€
Desarrollador
Desarrollador
Mensajes: 258
Registrado: 11 Feb 2011, 21:44

Re: Dudas sobre el codigo fuente

Mensaje por Yn$an€ »

Gracias. Quería decir eso, pero me salió mal.
jaja [excusas nada más]
... after all, we're all alike.

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: Dudas sobre el codigo fuente

Mensaje por arisma »

Vaya despiste.

Después de hacer una miniaplicación(MARS) en el que salía un menú para seleccionar un par de operaciones aritméticas y mostrar el resultado, he caído en que no está implementado lo de syscall.

Lo tienes previsto o lo miro el lunes? O no tiene prioridad.

Avatar de Usuario
Yn$an€
Desarrollador
Desarrollador
Mensajes: 258
Registrado: 11 Feb 2011, 21:44

Re: Dudas sobre el codigo fuente

Mensaje por Yn$an€ »

Pero para que eso funcione no necesitamos también el código de una zona privilegiada (SO)? Siempre podríamos rellenarlo, pero para simular el PCB lo veo crudo, por todo lo que lleva detrás. Lo que no sea eso, no sirve (por no poder comprobarse su funcionamiento) ya que sería un salto más en la ejecución a otra zona de memoria; cosa que por cierto, requiere del Cop0 para gestionar correctamente (por el hecho de saltar a una zona privilegiada).

Aunque puedes hacer el "esqueleto" de la syscall, cosa tampoco fácil :)

Por cierto, hola!! :D

En cambio si estoy interesado en la miniaplicación que que tu dices.
... after all, we're all alike.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Dudas sobre el codigo fuente

Mensaje por m0skit0 »

Sí, faltan por implementar las excepciones (incluidas las syscalls), pero dado que requieren del cop0, pues hasta que no esté, nada de nada.

Con la miniplicación supongo que te refieres al GUI de depuración. Dijiste que ibas a publicar el hilo nuevo sobre el tema. Ya lo hablamos ahí.

Saludos.
Imagen

Avatar de Usuario
Yn$an€
Desarrollador
Desarrollador
Mensajes: 258
Registrado: 11 Feb 2011, 21:44

Re: Dudas sobre el codigo fuente

Mensaje por Yn$an€ »

Y está hecho ;). Pero como posteó antes de haberla creado... Ya cambiamos de hilo
... after all, we're all alike.

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: Dudas sobre el codigo fuente

Mensaje por arisma »

(Syscall)Se va a hacer tipo sencillito?

Spoiler:

Código: Seleccionar todo

      case INST_SYSCALL:
         //cout << "Datos para instrucción SYSCALL" << endl;
         //cout << "Registro v0: " << regGenericos[REG_V0] << endl;
         //cout << "Registro a0: " << regGenericos[REG_A0] << endl;
         switch(regGenericos[REG_V0])
         {
            case 1: //Imprimir número
               cout << dec << regGenericos[REG_A0];
               break;
            case 5: //Recoger número
               cin >> regGenericos[REG_V0];
            default:
               break;
         }
         break;


Prueba.asm

Código: Seleccionar todo

      .data
      .text
main:
   li $v0, 5
   syscall
   xor $a0, $a0, $a0
   add $a0, $a0, $v0
   li $v0, 1
   syscall


preipl.bin

Código: Seleccionar todo

05 00 02 24 0C 00 00 00 26 20 84 00 20 20 82 00 01 00 02 24 0C 00 00 00

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Dudas sobre el codigo fuente

Mensaje por m0skit0 »

Esa SYSCALL que usas es para MIPS 3000 y anteriores si no me equivoco. En PSP en todo caso que yo sepa las SYSCALL siempre van con número. Ese número es procesador por el firmware de la PSP y lo manda a la rutina que corresponda. Además los números generados para cada syscall son aleatorios (miento, porque en ello se basa el HBL para funcionar, pero los tomaremos como aleatorios). Por tanto las syscalls están en manos del firmware. En caso de que por ahora no queramos hacer funcionar el firmware de Sony (algo que va a resultar un dolor de cabeza infinito), se pueden estudiar métodos para implementar las syscalls, pero un switch desde luego no, que sería más enorme que enorme.
Imagen

Responder