Dans le précédent article [1], nous avons affiné notre configuration pour supporter pleinement toute la richesse de ce que le langage C et la chaîne de compilation peuvent offrir en termes d'adressage mémoire, et sommes même allés jusqu'à utiliser ces mécanismes pour piloter une série de 64 LED adressables WS2812. Mais tout ceci se passe depuis « l'intérieur » du SoC lui-même et il est temps à présent d'accéder à cet espace depuis le monde extérieur.
Ce que nous obtenons en concevant notre SoC avec LiteX est, au premier regard, quelque chose d'assez similaire à une plateforme de développement basée sur un microcontrôleur ou un SoC de SBC. Bien sûr, la modularité de l'ensemble, ou même la capacité à rapidement basculer d'une architecture RISC-V (VexRiscv, PicoRV32, RocketChip, Minerva) vers OpenRISC (OpenRISC 1000, alias or1k) ou OpenPOWER (Microwatt), ou encore à changer l'endianness (le boutisme en bon français (sic)) arbitrairement, est un bénéfice dont on ne peut profiter qu'en travaillant avec un softcore et un FPGA. Mais si l'on s'en tient à cela, en pratique, c'est exactement comme développer pour un RP2040, un ESP32 ou un BCM2711 qui serait parfaitement adapté à nos besoins du moment, mais totalement immuable.
Il existe cependant toute une autre dimension que nous n'avons pas encore abordée. Une dimension où la barrière entre l'intérieur du SoC et le monde extérieur est levée, nous donnant ainsi…
- 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