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.
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 elTARGET_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")
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 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);
Actualice el manifiesto de aplicación para habilitar los periféricos que la aplicación usa ahora:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Compile y empaquete la aplicación.
Uso de 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 o rutas de acceso absolutas o relativas 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 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.
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"
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);
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" ]},
Compile y empaquete la aplicación.