Voulez-vous émuler uniquement le processeur ou une machine complète?
Emuler une CPU est très facile, il suffit de définir une structure contenant tous les registres CPU, créez un tableau pour simuler la RAM et puis juste émulent comme ceci:
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();
}
Emuler une machine entière est beaucoup plus difficile .. vous devez émuler des contrôleurs LCD, des registres mappés en mémoire, des contrôleurs de banques de mémoire, des DMA, des périphériques d'entrée, du son, des E/S ... vous avez probablement besoin d'un vidage du BIOS et du système d'exploitation ... Je ne sais pas le processeur ARM, mais si il a des pipelines, des caches et de telles choses, les choses deviennent plus compliquées pour le calendrier.
Si vous avez toutes les pièces de matériel entièrement documentées, il n'y a pas de problème mais si vous avez besoin de faire de l'ingénierie inverse ou de deviner comment la machine émulée fonctionne ... vous aurez du mal.
Commencez ici: http://infocenter.arm.com/help/index.jsp et téléchargez le «Manuel de référence technique» pour votre processeur.
Et pour les questions d'émulation générale: http://www.google.es/search?q=how+to+write+an+emulator
mon périphérique embarqué n'a aucune connectivité à l'exception du connecteur série, il est très difficile de transférer du code à chaque fois. Il faut 10 à 15 minutes pour transférer le code sur l'appareil. – SunnyShah
pouvez-vous s'il vous plaît dites-moi que, combien d'efforts faut-il pour faire émulateur avec qemu? – SunnyShah