3.6) Emulateur sur PC
C’est un outil très utile pour développer rapidement les applications A2Z, sans avoir besoin de les télécharger sur l’ordinateur réel. Ca permet également de coder avec un simple PC portable, n’importe où sans avoir à transporter tout un laboratoire d’électronique.
Ca permettra peut-être également à d’autres de s’amuser facilement avec mon projet, sans avoir à créer la carte électronique.
C’est
un émulateur « fonctionnel » qui cherche à imiter le comportement
d’A2Z, sans forcément simuler dans le détail les composants hardware
d’A2Z.
C’est une partie plus facile à coder que je ne l’imaginais.
L’émulateur sur PC est codé en C. J’utilise la librairie SFML pour 2
choses : l’interface clavier, et l’affichage graphique.
Il est donc certainement portable sur d’autres OS que Windows, avec des
modifications mineures.
L’émulateur
respecte la vitesse du processeur réel, en exécutant 52083 instructions
toutes les 16ms, puis en faisant une pause jusqu’à la fin des 16ms.
Cela correspond à la fréquence de 12.5MHz du processeur (4 tops
d’horloge par instruction). Les 16ms ont été choisis pour
correspondre au rafraichissement à 60Hz des graphiques (idem VGA 60Hz).
Limitations :
- La mémoire Flash est émulée de manière très basique, toutes les subtilités n’ont pas été codées. Donc attention si vous recodez le bas niveau de la gestion de la Flash : ce qui fonctionnera dans l’émulateur ne fonctionnera peut-être pas en condition réelle.
- Attention, le
clavier émulé est un clavier français AZERTY. Ca fonctionnera mal avec
un clavier QWERTY. A vous de coder la conversion si besoin.
Guide
d’utilisation :
L’appel de l’émulateur à partir d’une fenêtre terminal (invité de
commande windows) peut prendre des paramètres en option
- En l’absence de paramètres, l’émulateur va directement charger l’OS à partir de la Flash
- Les
paramètres correspondent aux noms de fichiers bine, bina ou binc que
vous voulez charger et exécuter. Attention, les fichiers sont chargés
dans l’ordre d’apparition dans la ligne de commande. Si vous chargez
plusieurs fichiers, il faut impérativement mettre le fichier exécutable
en dernier.
En cours d’exécution,
vous pouvez :
- F4 : mettre en pause
- F5 : reprendre l’exécution
- F7 : rebooter
- F9
: charger un nouveau fichier en RAM, comme le ferait le bootloader
série. Cette fonction est utile notamment pour mettre à jour le contenu
d’un fichier A2Z à partir d’un fichier bina bine ou binc de windows. La
manipulation se fait dans l’OS A2Z.