Partage via


Utiliser des définitions matérielles

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).

Cette rubrique explique comment utiliser des définitions matérielles dans votre application de haut niveau. Consultez les définitions matérielles pour plus d’informations sur les définitions matérielles, notamment sur la création de vos propres fichiers de définition de matériel.

Remarque

Le répertoire contenant les définitions matérielles JSON contient également un sous-répertoire inc/hw pour les définitions de fichier d’en-tête équivalentes.

Utiliser une définition matérielle à partir du Kit de développement logiciel (SDK)

Le répertoire HardwareDefinitions du Kit de développement logiciel (SDK) Azure Sphere contient des définitions pour les cartes Azure Sphere courantes et les puces qu’ils utilisent. Ce répertoire se trouve %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions sur Windows et /opt/azurespheresdk/HardwareDefinitions sur Linux.

  1. Dans CMakelists.txt recherchez la fonction azsphere_target_hardware_definition et définissez le TARGET_DEFINITION paramètre sur le fichier JSON de définition matérielle pour la carte cible. L’exemple suivant montre comment définir le TARGET_DEFINITION paramètre si votre application utilise le tableau de développement de référence MT3620 (RDB) :

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")

  2. Dans main.c, incluez le fichier d’en-tête de définition matérielle correspondant pour la carte cible :

    #include  "hw/mt3620_rdb.h"
    
  3. Consultez le fichier d’en-tête ou le fichier JSON pour obtenir des informations sur l’identificateur et le type de périphériques utilisés dans votre application. Créez ou modifiez votre code d’application en conséquence.

    Par exemple, une application qui cible le tableau de développement de référence MT3620 (RDB) utilise une LED à bord. La constante utilisée pour identifier la LED est définie dans le fichier d’en-tête mt3620_rdb.h comme suit :

    // LED 1 Red channel uses GPIO8.
    #define MT3620_RDB_LED1_RED MT3620_GPIO8
    

    La ligne suivante initialise la LED à l’aide des informations fournies dans la définition matérielle.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Mettez à jour le manifeste de l’application pour activer les périphériques que l’application utilise désormais :

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Compilez et empaquetez l’application.

Utiliser une définition matérielle qui n’est pas installée avec le Kit de développement logiciel (SDK)

  1. Dans CMakelists.txt recherche de la azsphere_target_hardware_definition fonction .

  2. Définissez le TARGET_DIRECTORY paramètre avec le chemin d’accès relatif ou absolu ou les chemins d’accès au répertoire ou aux répertoires contenant les fichiers de définition de matériel que vous souhaitez utiliser.

  3. Définissez le TARGET_DEFINITION paramètre sur le nom du fichier JSON de définition de matériel. Le processus de génération recherche ce fichier et tous les fichiers qu’il importe, dans les répertoires cibles dans l’ordre répertorié, puis dans le SDK lui-même.

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")

    Spécifiez chaque répertoire cible entre guillemets doubles et séparez les noms de répertoires avec des espaces. Dans l’exemple, <le chemin d’accès> représente le chemin d’accès au dossier my_app.

  4. Dans main.c, incluez le fichier d’en-tête de définition matérielle pour la carte cible. Le processus de génération recherche ce fichier, et ces fichiers qu’il inclut, dans le sous-répertoire « inc » des répertoires cibles dans l’ordre répertorié, puis dans le Kit de développement logiciel (SDK) lui-même. Par conséquent, la convention suivante permet de trouver contoso_board.h dans le sous-répertoire inc/hw des répertoires cibles :

    #include   "hw/contoso_board.h"
    
  5. Consultez le fichier d’en-tête ou le fichier JSON pour obtenir des informations sur l’identificateur et le type de périphériques utilisés dans votre application. Créez ou modifiez votre code d’application en conséquence.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Mettez à jour le manifeste de l’application (app_manifest.json) pour activer les périphériques que l’application utilise désormais :

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Compilez et empaquetez l’application.