Utiliser des périphériques dans une application en 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).
Les applications en temps réel peuvent mapper des périphériques à des fins d'utilisation exclusive. Pour utiliser un ou plusieurs périphériques dans une application en temps réel :
- Ajoutez le périphérique au manifeste de l’application.
- Ajoutez un gestionnaire d’interruption (si nécessaire) et tout autre code de prise en charge à l’application.
- Ajoutez du code pour vous assurer que chaque périphérique sera dans un état correct connu au démarrage.
Important
Pour des informations matérielles spécifiques sur la manière de programmer des périphériques pour une application en temps réel, consultez la documentation du fabricant de votre matériel. 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.
Toutes les ressources utilisées par une application en temps réel doivent être spécifiées dans le manifeste de l’application. Dans une application RTApp, vous devez utiliser le nom de la ressource affectée à AppManifestValue dans le fichier JSON de définition matérielle pour la puce cible. Vous ne pouvez pas utiliser le nom général affecté à la ressource dans le fichier d’en-tête de définition du matériel. Par exemple, pour rechercher la valeur permettant d’identifier I2C sur le matériel ISU0 sur MT3620, recherchez le fichier mt3620.json dans le dossier HardwareDefinitions installé dans le dossier du Kit de développement logiciel (SDK) Microsoft Azure Sphere. Ce périphérique est défini comme suit dans le fichier JSON :
{"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},
Notez que la valeur affectée à AppManifestValue pour le périphérique I2C est « ISU0 ».
Les applications chargées simultanément ne peuvent pas partager de ressources ; l'utilisation des ressources est réservée à une seule application. Lors du chargement de l'application, le système d’exploitation Azure Sphere effectue plusieurs tâches importantes :
- Il configure le multiplexage de manière à ce que les broches associées au périphérique soient configurées pour la fonctionnalité demandée.
- Configure le mappage principal, ce qui implique la configuration de pare-feu pour permettre à l'application d'accéder aux registres associés aux périphériques demandés.
- Vérifie le manifeste et ne parvient pas à charger l’application si elle revendique des ressources déjà revendiquées par une autre application.
La suite de cette section détaille l’utilisation de périphériques spécifiques.
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 ou après le redémarrage.
Un redémarrage de l’appareil est déclenché lorsqu’une nouvelle application qui utilise des périphériques est installée et que les conditions suivantes sont remplies :
- L’état de fabrication de l’appareil est défini sur DeviceComplete.
- La fonctionnalité appDevelopment n’est pas présente sur l’appareil. Pour plus d’informations, consultez Verrouillage de la configuration périphérique.
Si un redémarrage de l’appareil est lancé, attendez que le redémarrage soit terminé et que l’appareil soit réactif.
Sujet | Description |
---|---|
Utiliser des ADC dans des applications prenant en charge le temps réel | Décrit comment utiliser des convertisseurs analogique-numérique avec Azure Sphere. |
Utiliser des GPIO dans des applications prenant en charge le temps réel | Décrit comment utiliser une broche GPIO (General Purpose Input/Output) avec Azure Sphere. |
Utiliser des GPT dans des applications prenant en charge le temps réel | Décrit comment utiliser des minuteurs à usage général (GPT) avec Azure Sphere. |
Utiliser I2C dans les applications prenant en charge le temps réel | Décrit comment utiliser I2C (Inter-Integrated Circuit) pour la communication série. |
Utiliser I2S dans les applications prenant en charge le temps réel | Décrit comment utiliser I2S (Integrated Interchip Sound) avec Azure Sphere. |
Utiliser PWM dans les applications prenant en charge le temps réel | Décrit comment utiliser la modulation de largeur d’impulsions (PWM) avec Azure Sphere. |
Utiliser SPI dans les applications prenant en charge le temps réel | Décrit comment utiliser SPI (Serial Peripheral Interface) pour la communication série. |
Utiliser des UART dans des applications prenant en charge le temps réel | Décrit comment utiliser des UART pour la communication série. |
Utiliser des interruptions externes dans des applications compatibles en temps réel | Décrit comment utiliser des interruptions externes dans une application RTApp pour répondre aux signaux externes. |
Utiliser des minuteurs de surveillance dans des applications compatibles en temps réel | Décrit les effets de l’utilisation de minuteurs de surveillance sur les cœurs mt3620 en temps réel. |