Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.
Ce qui aura commencé par un hack nous permettant de jouer avec la Game & Watch, après avoir mis en sécurité le firmware original, s'est maintenant transformé en véritable plateforme d'expérimentation et d'apprentissage. Nous sommes très loin d'avoir exploité toutes les fonctionnalités du monstrueux microcontrôleur STM32 à cœur ARM Cortex-M7 et de la console en général, mais il en est une qui semble incontournable. Présent sur le circuit imprimé se trouve une flash SPI MX25U8035F de 8 Mbits produite par Macronix, interfacée avec le microcontrôleur en SPI et déjà prise en charge (initialisation et mapping) par le code de base proposé par les auteurs du hack original [2].
Une flash SPI, même en multi-I/O (DSPI ou QSPI) est relativement lente en comparaison des 128 Ko de flash intégrées au microcontrôleur et exécuter du code placé à cet endroit ruinerait totalement les performances. Ce qu'il est possible de faire, en revanche, est de stocker du code en...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première