Compartir vía


Uso de definiciones de hardware

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

En este tema se describe cómo usar definiciones de hardware en la aplicación de alto nivel. Consulte Definiciones de hardware para obtener información más detallada sobre las definiciones de hardware, incluido cómo crear sus propios archivos de definición de hardware.

Nota:

El directorio que contiene las definiciones de hardware JSON también contiene un subdirectorio inc/hw para las definiciones de archivo de encabezado equivalentes.

Uso de una definición de hardware desde el SDK

El directorio HardwareDefinitions del SDK de Azure Sphere contiene definiciones para los paneles comunes de Azure Sphere y los chips que usan. Este directorio está %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions en Windows y /opt/azurespheresdk/HardwareDefinitions en Linux.

  1. En CMakelists.txt busque la función azsphere_target_hardware_definition y establezca el TARGET_DEFINITION parámetro en el archivo JSON de definición de hardware para la placa de destino. En el ejemplo siguiente se muestra cómo establecer el TARGET_DEFINITION parámetro si la aplicación usa la Placa de desarrollo de referencia (RDB) MT3620:

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

  2. En main.c, incluya el archivo de encabezado de definición de hardware correspondiente para la placa de destino:

    #include  "hw/mt3620_rdb.h"
    
  3. Consulte el archivo de encabezado o el archivo JSON para obtener información sobre el identificador y el tipo de periféricos usados en la aplicación. Cree o modifique el código de la aplicación en consecuencia.

    Por ejemplo, una aplicación que tiene como destino la Placa de desarrollo de referencia (RDB) MT3620 usa un LED incorporado. La constante usada para identificar el LED se define en el archivo de encabezado mt3620_rdb.h como se indica a continuación:

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

    La siguiente línea inicializa el LED mediante la información proporcionada en la definición de hardware.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Actualice el manifiesto de aplicación para habilitar los periféricos que la aplicación usa ahora:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Compile y empaquete la aplicación.

Uso de una definición de hardware que no está instalada con el SDK

  1. En CMakelists.txt busque la azsphere_target_hardware_definition función .

  2. Establezca el TARGET_DIRECTORY parámetro con la ruta de acceso o rutas de acceso absolutas o relativas al directorio o directorios que contienen los archivos de definición de hardware que desea usar.

  3. Establezca el TARGET_DEFINITION parámetro en el nombre del archivo JSON de definición de hardware. El proceso de compilación busca este archivo y los archivos que importa, en los directorios de destino en el orden enumerado y, a continuación, en el propio SDK.

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

    Especifique cada directorio de destino entre comillas dobles y los nombres de directorio independientes con espacios. En el ejemplo, <la ruta> de acceso representa la ruta de acceso a la carpeta my_app.

  4. En main.c se incluye el archivo de encabezado de definición de hardware para la placa de destino. El proceso de compilación buscará este archivo y los archivos que incluye, en el subdirectorio "inc" de los directorios de destino en el orden enumerado y, a continuación, en el propio SDK. Por lo tanto, la siguiente convención encontrará contoso_board.h en el subdirectorio inc/hw de los directorios de destino:

    #include   "hw/contoso_board.h"
    
  5. Consulte el archivo de encabezado o el archivo JSON para obtener información sobre el identificador y el tipo de periféricos usados en la aplicación. Cree o modifique el código de la aplicación en consecuencia.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Actualice el manifiesto de aplicación (app_manifest.json) para habilitar los periféricos que la aplicación usa ahora:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Compile y empaquete la aplicación.