Partage via


Communiquer avec une application générale

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 communiquent avec les applications générales via une mémoire tampon en anneau qui est mappée à une zone de mémoire partagée.

Les exemples IntercoreComms montrent comment les applications en temps réel peuvent communiquer avec des applications générales. Utilisez l’exemple IntercoreComms_RTApp_MT3620_BareMetal comme point de départ pour le développement de votre propre code de communication d’application en temps réel. Pour plus d’informations sur le code nécessaire dans une application générale, consultez Communiquer avec une application prenant en charge le temps réel.

Important

Pour plus d’informations sur l’inscription des adresses et d’autres détails spécifiques au matériel, demandez le « Guide du programmeur MT3620 M4 » par e-mail Azure.Sphere@avnet.com.

Opération

Du point de vue de l’application en temps réel, la communication avec une application générale implique les opérations de base suivantes :

  • Lecture des informations de configuration à partir de la boîte aux lettres partagée avec le cœur général sur le MT3620
  • Lecture et écriture de données dans la mémoire partagée

Initialiser les pointeurs et les tailles de mémoire tampon

L’application en temps réel reçoit des informations sur la mémoire tampon en anneau par le biais de trois messages dans la boîte aux lettres que les cœurs en temps réel et général partagent. Chaque message contient une commande et des données. Les deux premiers messages fournissent les adresses de base des mémoires tampons de lecture et d’écriture que les applications utilisent pour communiquer. Le troisième indique que la transmission des informations d’installation pour les mémoires tampons est terminée.

Valeur de commande Données
0xba5e0001 Descripteur de la mémoire tampon de sortie (écriture) pour les applications RTApp
0xba5e0002 Descripteur de la mémoire tampon d’entrée (lecture) pour les applications RTApp
0xba5e0003 Fin de l’installation

L’application en temps réel calcule la taille des mémoires tampons de lecture et d’écriture, et configure des pointeurs à la position initiale de chaque mémoire tampon en fonction des données figurant dans les descripteurs de mémoire tampon.

Pour plus d’informations sur l’utilisation de la boîte aux lettres, voir l’exemple IntercoreComms_RTApp_MT3620_BareMetal.

Lire et écrire dans les mémoires tampons

Une fois initialisée, l’application en temps réel peut lire et écrire dans les mémoires tampons. Étant donné que la communication est implémentée avec une mémoire tampon en anneau, les lectures et écritures peuvent être encapsulées au début de la mémoire tampon.

Les messages écrits ou lus dans la mémoire tampon présentent la structure suivante :

En-tête du message Contenu du message
ID de composant Réservé
16 octets 4 octets
Données
0 à 1 Ko
  • Le premier champ de l’en-tête du message (16 octets) contient l’ID de composant de l’application générale.

    Si l’application en temps réel lance la communication avec l’application générale, assurez-vous que l’ordre des octets dans chacun des trois premiers segments de l’ID de composant est Little-endian (octet le moins significatif en premier). L’ordre des octets dans les deux segments restants doit être Big-endian.

    Si l’application en temps réel répond à un message de l’application générale, il vous suffit de copier l’ID de composant indiqué dans le message source dans l’en-tête du message de réponse.

  • Le deuxième champ de l’en-tête du message (4 octets) est actuellement réservé et doit contenir des 0.

  • L’en-tête du message est toujours aligné sur une limite de 16 octets.

  • Actuellement, le contenu du message peut avoir une taille maximale de 1 Ko.

Après chaque opération de lecture ou d’écriture dans la mémoire tampon, l’application en temps réel utilise la boîte aux lettres partagée pour notifier à l’application générale qu’elle a reçu ou transmis un message.

Paramètres de manifeste de l’application

Les manifestes d’application, tant pour l’application en temps réel que pour l’application générale, doivent répertorier les ID de composant des applications avec lesquelles ils communiquent. Pour configurer ce paramètre, ajoutez la fonctionnalité AllowedApplicationConnections au manifeste de l’application, puis ajoutez chaque ID de composant à la fonctionnalité. Le manifeste d’application Azure Sphere contient plus de détails. Voici un extrait de manifeste d’application qui configure une application en temps réel pour communiquer avec une autre application.

"AllowedApplicationConnections": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Applications partenaires

Quand vous chargez une application sur l’appareil Azure Sphere, les outils de déploiement Azure Sphere suppriment par défaut toutes les applications existantes. Pour éviter ce problème lorsque vous développez des applications qui communiquent entre elles, vous devez marquer les applications en tant que partenaires. Lorsque vous déployez l’une des applications, ses partenaires ne seront pas supprimés. Pour plus d’informations, consultez Marquer les applications comme partenaires.