Memory-mapped IO ou MMIO est le processus d’interaction avec les périphériques matériels en E/S sur des adresses mémoire prédéfinies. Toutes les interactions avec le matériel sur le Raspberry Pi se produisent en utilisant MMIO.
Un périphérique est un matériel avec une adresse spécifique dans la mémoire à laquelle il écrit et / ou lit des données. Tous les périphériques peuvent être décrits par un décalage de l’ adresse de base périphérique, qui commence à 0x20000000 sur le modèle Raspberry Pi 1, et à 0x0x3F000000 sur les modèles 2 et 3.
Un registre est un morceau de mémoire de 4 octets à travers lequel un périphérique peut lire ou écrire. Ces registres sont à des décalages prédéfinis à partir de l’adresse de base du périphérique. Par exemple, il est assez commun qu’au moins un registre soit un registre de contrôle, où chaque bit dans le registre correspond à un certain comportement que le matériel devrait avoir. Un autre registre commun celui de l’écriture, où tout ce qui y est écrit est envoyé au matériel.
Déterminer où se trouvent tous les périphériques, quels registres ils ont et comment les utiliser se trouvent principalement dans le manuel du BCM2835 ARM. Le BCM2835 est le nom du chipset utilisé par le Raspberry Pi model 1, et la plupart des informations sont utilisable pour les modèles 2 et 3. Ce document n’est pas facile à analyser, et il manque beaucoup d’informations, mais c’est un bon point de départ.
GIPHY App Key not set. Please check settings