Como hacer ARM9 emulador de dispositivo personalizado?
-
18-09-2019 - |
Pregunta
Estoy trabajando en el procesador ARM 9 con 266 Mhz con el apoyo FPU y 32 MB de RAM, estoy en Linux en it.I quieren emularlo en el PC (no tengo Linux y Windows availabe en el PC). Quiero perfil Mis cuentas de ciclo, correr mis ejecutables cross-compilado directamente en el emulador. ¿Hay algún proyecto de código abierto disponible para crear emulador fácilmente, ¿Cuánto cambio / código / esfuerzo lo hace tengo que escribir para hacer emulador de encargo con ella? Sería muy bueno si se proporciona tutoriales me ot otra referencia para obtener el puntapié inicial.
Gracias y Saludos,
Sunny.
Solución
Usted debe dar un vistazo a QEMU . No entiendo, sin embargo, ¿por qué necesita un emulador completa?
Ya puede un montón de perfiles sin emulador. ¿Cuáles son los beneficios que se pueden esperar de tener un emulador de sistema?
Otros consejos
¿Quieres emular simplemente el procesador o una máquina completa?
emular una CPU es muy fácil, sólo definir una estructura que contiene todos los registros de la CPU, crear una matriz para simular RAM y luego simplemente emular así:
cpu_ticks = 0; // counter for cpu cycles
while (true) {
opcode = RAM[CPU.PC++]; // Fetch opcode and increment program counter
switch (opcode) {
case 0x12: // invented opcode for "MOV A,B"
CPU.A = CPU.B;
cpu_ticks += 4; // imagine you need 4 ticks for this operation
set_cpu_flags_mov();
break;
case 0x23: // invented opcode for "ADD A, #"
CPU.A += RAM[CPU. PC++]; // get operand from memory
cpu_ticks += 8;
set_cpu_flags_add();
break;
case 0x45: // invented opcode for "JP Z, #"
if (CPU.FLAGS.Z) CPU.PC=RAM[CPU.PC++]; // jump
else CPU.PC++; // continue
cpu_ticks += 12;
set_cpu_flags_jump();
break;
...
}
handle_interrupts();
}
Emular una máquina completa es mucho más difícil ... que necesita para emular controladores LCD, memoria mapeada registros, bancos de memoria, controladores DMA, dispositivos de entrada, sonido, cosas de E / S ... También es probable que necesite un vertedero de el BIOS del sistema y operativo ... no sé el procesador ARM pero si tiene tuberías, cachés y esas cosas, las cosas se complican más para medir el tiempo.
Si usted tiene todas las piezas de hardware totalmente documentadas, no hay problema, pero si necesita realizar ingeniería inversa o adivinar cómo funciona la máquina emulada ... usted tendrá un tiempo difícil.
Haga clic aquí: http://infocenter.arm.com/help/index.jsp y descargar el "Manual de Referencia técnica" para su procesador.
Y para preguntas generales de emulación: http: // www .google.es / search? q = cómo + + escribir un emulador +