Partager via


Utiliser des définitions matérielles

Cette rubrique explique comment utiliser des définitions matérielles dans votre application de haut niveau. Consultez Définitions de matériel 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.

Note

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’elles 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 paramètre sur TARGET_DEFINITION 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 (RDB) MT3620 :

    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 de matériel 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 (RDB) MT3620 utilise une LED embarquée. 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 maintenant :

    "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 recherchez la azsphere_target_hardware_definition fonction .

  2. Définissez le TARGET_DIRECTORY paramètre avec le ou les chemins d’accès relatifs ou absolus du ou des répertoires contenant les fichiers de définition matérielle que vous souhaitez utiliser.

  3. Définissez le TARGET_DEFINITION paramètre sur le nom du fichier JSON de définition matérielle. Le processus de génération recherche ce fichier et tous les fichiers qu’il importe, dans les répertoires cibles dans l’ordre indiqué, 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 par des espaces. Dans l’exemple, <path> 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, ainsi que les fichiers qu’il inclut, dans le sous-répertoire « inc » des répertoires cibles dans l’ordre indiqué, 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 maintenant :

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