Usar definiciones de hardware
En este tema se describe cómo usar las definiciones de hardware en la aplicación de alto nivel. Consulta Definiciones de hardware para obtener información más detallada sobre las definiciones de hardware, incluido cómo crear tus propios archivos de definición de hardware.
Nota
El directorio que contiene las definiciones de hardware JSON también contiene un sub directory inc/hw para las definiciones de archivo de encabezado equivalentes.
Usar una definición de hardware del SDK
El directorio HardwareDefinitions del SDK de Azure Sphere contiene definiciones para los paneles Azure Sphere comunes y los chips que usan. Este directorio está %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions
en Windows y /opt/azurespheresdk/HardwareDefinitions
en Linux.
En CMakelists.txt busque la función
azsphere_target_hardware_definition
y establezca elTARGET_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 parámetro si laTARGET_DEFINITION
aplicación usa el Panel de desarrollo de referencia mt3620 (RDB):azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
En main.c, incluya el archivo de encabezado de definición de hardware correspondiente para la placa de destino:
#include "hw/mt3620_rdb.h"
Consulte el archivo de encabezado o el archivo JSON para obtener información sobre el identificador y el tipo de periféricos que se usan en la aplicación. Cree o modifique el código de aplicación en consecuencia.
Por ejemplo, una aplicación que se centra en el Panel de desarrollo de referencia (RDB) MT3620 usa un LED integrado. La constante usada para identificar el LED se define en el archivo de encabezado mt3620_rdb.h como sigue:
// LED 1 Red channel uses GPIO8. #define MT3620_RDB_LED1_RED MT3620_GPIO8
La siguiente línea inicializa el LED usando la información proporcionada en la definición de hardware.
int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Actualiza el manifiesto de la aplicación para habilitar los periféricos que la aplicación está usando ahora:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Compile y empaquete la aplicación.
Usar una definición de hardware que no esté instalada con el SDK
En CMakelists.txt busque la
azsphere_target_hardware_definition
función .Establezca el
TARGET_DIRECTORY
parámetro con la ruta de acceso relativa o absoluta, o rutas de acceso al directorio o directorios que contienen los archivos de definición de hardware que desea usar.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 en que aparecen y, a continuación, en el SDK en sí.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 separe los nombres de directorio con espacios. En el ejemplo, <ruta de acceso> representa la ruta de acceso a la carpeta my_app.
En main.c, incluya 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 en que aparecen y, a continuación, en el SDK en sí. Por lo tanto, la convención siguiente encontrará contoso_board.h en el sub directory inc/hw de los directorios de destino:
#include "hw/contoso_board.h"
Consulte el archivo de encabezado o el archivo JSON para obtener información sobre el identificador y el tipo de periféricos que se usan en la aplicación. Cree o modifique el código de aplicación en consecuencia.
int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Actualiza el manifiesto de la aplicación (app_manifest.json) para habilitar los periféricos que usa ahora la aplicación:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Compile y empaquete la aplicación.