Il existe de nombreux cas où le matériel n’est pas disponible pour développer un système embarqué, que ce soit parce que la carte commandée n’a pas encore été livrée, parce que le collègue chargé de la conception du circuit imprimé a fait une erreur ou est en retard, ou parce qu’un virus interdit l’accès aux salles de travaux pratiques de l’Université (Fig. 1). Pour toutes ces raisons, nous désirons appréhender le développement d’un système embarqué sur un émulateur, c’est-à-dire un logiciel capable de fournir une représentation fidèle du comportement du dispositif réel, incluant ses latences et temporisations.
Nous avions proposé [1] l’utilisation d’émulateurs pour appréhender le développement du code embarqué (firmware) sur divers microcontrôleurs, de la petite architecture 8 bits de l’Atmega de Atmel (maintenant Microchip) aux gros ARM, RISC-V et MIPS capables d’exécuter GNU/Linux. Dans tous ces cas, nous nous étions arrêtés au firmware, sans considérer l’émulation du circuit imprimé qui entoure le microcontrôleur et lui injecte potentiellement des stimuli, que ce soit sous forme de signaux binaires (GPIO pour General Purpose Input Output) ou messages (série sur bus USART ou parallèle sur un port de GPIO). Nous allons combler cette lacune en appréhendant l’émulateur de petits microcontrôleurs de la gamme Atmega simavr...
