Utilisation des GPIO dans des applications prenant en charge le temps réel
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
Azure Sphere prend en charge les GPIO (entrées/sorties à usage général). Un GPIO est un type de broche numérique programmable qui fait partie d’un circuit intégré. Les GPIO n’ont pas de fonctionnalités prédéfinies et leur comportement peut être personnalisé par une application. Les GPIO sont couramment utilisés pour changer l’état des périphériques matériels, pour contrôler les LED et pour lire l’état des commutateurs.
Cette rubrique décrit comment utiliser des GPIO dans des applications prenant en charge le temps réel (RTApps). Consultez Utilisation des GPIO dans des applications générales pour obtenir plus d’informations à ce sujet.
Une application en temps réel peut utiliser n'importe quel GPIO de l’appareil Azure Sphere. Les opérations suivantes sont prises en charge pour les GPIO :
- Lecture des entrées
- Définir les sorties sur une valeur élevée ou faible
- Interroger les interruptions logicielles
Remarque
Le système d’exploitation Azure Sphere ne réinitialise pas les périphériques au démarrage. Vos applications doivent s’assurer que les périphériques sont dans un état correct connu au démarrage et après le redémarrage.
Prise en charge MT3620 de GPIO sur les cœurs en temps réel
Sur le MT3620, la plupart des GPIO sont mappés sur des cœurs en temps réel en blocs de quatre, en commençant par le GPIO 0 ; en revanche, les blocs ISU 0 - 4 en compte cinq. Dès lors, les requêtes GPIO d'une application en temps réel peuvent échouer si une application générale (ou une autre application en temps réel) sollicite un GPIO du même bloc. Par exemple, si une application générale sollicite le GPIO 8 et une application en temps réel le GPIO 9, la seconde application renvoie une erreur au moment du déploiement.
Chaque LED de la carte RDB MT3620 mappe avec trois GPIO : un par canal rouge, vert et bleu.
Pour inscrire des adresses de base, des numéros d’interruption, une fréquence d’horloge, une fréquence d’échantillonnage et d’autres détails sur le MT3620, consultez la feuille de données MT3620 M4 et le Manuel utilisateur MT3620 M4 ; si des questions restent, vous pouvez demander des détails auprès d’Avnet par e-mail Azure.Sphere@avnet.com.
Configuration requise des GPIO
Le code de votre application doit pouvoir identifier le GPIO et ses registres. Consultez la documentation du fabricant du matériel pour connaître l'adresse de base du registre. Avant que votre application RTApp puisse utiliser un GPIO, elle doit initialiser les blocs qu’il va utiliser. Cette initialisation est requise une seule fois pour chaque bloc que l'application utilise.
Pour plus d’informations sur le MT3620, consultez la prise en charge de MT3620 pour les GPIOs sur les cœurs en temps réel.
Paramètres de manifeste de l’application
Pour utiliser un GPIO, une application en temps réel doit le lister dans la section Capabilities du manifeste de l'application. Identifiez le GPIO en utilisant la valeur « AppManifestValue » définie pour celui-ci dans le fichier JSON du matériel cible. Par exemple, la ligne suivante réserve les GPIO 8 et 12 :
"Capabilities": {
"Gpio": [ 8, 12 ]
}
Exemple d’application GPIO
L’exemple GPIO montre comment utiliser des GPIO dans une application RTApp. Les fichiers README fournissent des détails et des instructions.