Compilación e implementación de aplicaciones asociadas
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 esta sección se describe cómo compilar, empaquetar e implementar aplicaciones asociadas de Azure Sphere.
Estas instrucciones usan las aplicaciones de ejemplo IntercoreComms como ejemplo.
Requisitos previos
- Conexión del dispositivo de Azure Sphere al equipo
- Instalar Azure Sphere
- Instale la cadena de herramientas gnu Arm Embedded si usa Visual Studio Code o la CLI.
- Configure el hardware para mostrar la salida del UART dedicado, si aún no lo ha hecho
Habilitación del desarrollo y la depuración
Antes de poder compilar una aplicación de ejemplo en el dispositivo de Azure Sphere o desarrollar nuevas aplicaciones para él, debe habilitar el desarrollo y la depuración. De forma predeterminada, los dispositivos de Azure Sphere están "bloqueados"; es decir, no permiten la carga de las aplicaciones en desarrollo desde un equipo, y no permiten la depuración de aplicaciones. La preparación del dispositivo para la depuración elimina esta restricción, carga el software necesario para depurar y desbloquea las funcionalidades del dispositivo, tal y como se describe en Funcionalidades del dispositivo y comunicación.
Para depurar en los núcleos en tiempo real, use el comando azsphere device enable-development. Este comando configura el dispositivo para que acepte aplicaciones de un equipo para depurar y asigne el dispositivo al grupo de dispositivos desarrollo, que no permite actualizaciones de aplicaciones en la nube. Durante el desarrollo y la depuración de aplicaciones, debe dejar el dispositivo en este grupo para que las actualizaciones de las aplicaciones en la nube no sobrescriban la aplicación en desarrollo.
En Windows, debe agregar el --enable-rt-core-debugging
parámetro , que carga los servidores de depuración y los controladores necesarios para cada tipo de núcleo en el dispositivo.
Inicie sesión en Azure Sphere si aún no lo ha hecho:
azsphere login
Abra una interfaz de línea de comandos mediante PowerShell o el símbolo del sistema de Windows con privilegios de administrador. El
--enable-rt-core-debugging
parámetro requiere privilegios de administrador porque instala controladores USB para el depurador.Escriba el comando siguiente:
azsphere device enable-development --enable-rt-core-debugging
Cierre la ventana cuando el comando termine, porque ya no se necesitan privilegios de administrador. Como procedimiento recomendado, debe utilizar siempre el privilegio más bajo que puede realizar una tarea.
Si se produce un error en el comando azsphere device enable-development , consulte Solución de problemas de Azure Sphere para obtener ayuda.
Habilitación del desarrollo y la depuración
Antes de poder compilar una aplicación de ejemplo en el dispositivo de Azure Sphere o desarrollar nuevas aplicaciones para él, debe habilitar el desarrollo y la depuración. De forma predeterminada, los dispositivos de Azure Sphere están "bloqueados"; es decir, no permiten la carga de las aplicaciones en desarrollo desde un equipo, y no permiten la depuración de aplicaciones. La preparación del dispositivo para la depuración elimina esta restricción, carga el software necesario para depurar y desbloquea las funcionalidades del dispositivo, tal y como se describe en Funcionalidades del dispositivo y comunicación.
Para depurar en los núcleos en tiempo real, use el comando azsphere device enable-development. Este comando configura el dispositivo para que acepte aplicaciones de un equipo para depurar y asigne el dispositivo al grupo de dispositivos desarrollo, que no permite actualizaciones de aplicaciones en la nube. Durante el desarrollo y la depuración de aplicaciones, debe dejar el dispositivo en este grupo para que las actualizaciones de las aplicaciones en la nube no sobrescriban la aplicación en desarrollo.
En Windows, debe agregar el --enable-rt-core-debugging
parámetro , que carga los servidores de depuración y los controladores necesarios para cada tipo de núcleo en el dispositivo.
Inicie sesión en Azure Sphere si aún no lo ha hecho:
azsphere login
Abra una interfaz de línea de comandos mediante PowerShell, el símbolo del sistema de Windows o el shell de comandos de Linux con privilegios de administrador. El
--enable-rt-core-debugging
parámetro requiere privilegios de administrador porque instala controladores USB para el depurador.Escriba el comando siguiente:
azsphere device enable-development --enable-rt-core-debugging
Cierre la ventana cuando el comando termine, porque ya no se necesitan privilegios de administrador. Como procedimiento recomendado, debe utilizar siempre el privilegio más bajo que puede realizar una tarea.
Si se produce un error en el comando azsphere device enable-development con el siguiente mensaje de error, consulte Solución de problemas de Azure Sphere para obtener ayuda.
error: The device did not accept the device capability configuration. Please check the Azure Sphere OS on your device is up-to-date using 'azsphere device show-deployment-status'.
Compilación de aplicaciones de asociados con Visual Studio
Asegúrese de que el dispositivo esté conectado al equipo mediante USB. En el menú Establecer elemento de inicio, seleccione Aplicación de Azure Sphere (Todos los núcleos) donde aplicación de Azure Sphere es el nombre del proyecto de nivel superior o presione F5.
Si se le solicita que compile el proyecto, seleccione Sí. Visual Studio compila las aplicaciones asociadas, crea paquetes de imágenes, los carga localmente en el panel y los inicia en modo de depuración. La instalación de prueba significa que las aplicaciones se entregan directamente desde el equipo a través de una conexión cableada, en lugar de entregarse a través de la nube.
Tenga en cuenta las rutas de acceso de la vista>De salida>Mostrar salida de: Salida de compilación, que indica la ubicación de los paquetes de imágenes de salida en el equipo. Cuando esté listo para crear una implementación, deberá conocer las rutas de acceso a los paquetes de imagen.
De forma predeterminada, la ventana Salida muestra la salida de salida del dispositivo. Para ver los mensajes del depurador, seleccione Depurar desde el menú desplegable Mostrar resultados desde:. También puede inspeccionar el desensamblado del programa, los registros o la memoria a través del menú Depurar>Windows.
Compilación de aplicaciones de asociados con Visual Studio Code
Abra la carpeta que contiene las aplicaciones asociadas. Visual Studio Code detecta el archivo del área de trabajo y le pregunta si desea abrir el área de trabajo. Seleccione Abrir área de trabajo para abrir la aplicación en tiempo real y la aplicación de alto nivel a la vez.
Haga clic con el botón derecho en cualquiera de los dos archivos CMakeLists.txt y seleccione Compilar todos los proyectos.
Haga clic en el icono Ejecutar de la barra de actividades de Visual Studio Code.
En el menú desplegable que aparece en la parte superior de la ventana del lado izquierdo de la pantalla, seleccione Iniciar aplicaciones de Azure Sphere (gdb)(área de trabajo).
Presione F5 para compilar y depurar el proyecto. Si el proyecto no se ha compilado previamente o si se han cambiado los archivos y se requiere la regeneración, Visual Studio Code compilará el proyecto antes de que se inicie la depuración.
Espere varios segundos para que Visual Studio Code compile las aplicaciones, cree los paquetes de imagen, impleméntelos en el panel e inícielos en modo de depuración. Verá las actualizaciones de estado en el panel Salida a lo largo del proceso.
En primer lugar, CMake determina si las aplicaciones deben compilarse. Si es así, el foco cambia a la ventana de salida, que muestra la salida de CMake/Build.
A continuación, el panel de salida muestra la salida de azsphere a medida que implementa el paquete de imágenes en el dispositivo. Por último, la herramienta Consola de depuración recibe el foco y muestra la salida de gdb.
Compilación de la aplicación
Para compilar las aplicaciones con la CLI, tendrá que encontrar las herramientas de compilación, los encabezados y las bibliotecas correctos ( denominados colectivamente sysroot) en el equipo. El SDK de Azure Sphere se proporciona con varios sysroots para que las aplicaciones puedan tener como destino diferentes conjuntos de API, tal como se describe en Versión del entorno de ejecución de la aplicación, sysroots y API Beta. Los sysroot se instalan en la carpeta de instalación del SDK de Azure Sphere en Sysroots.
Al compilar con la CLI, primero compile e implemente la aplicación con respuesta en tiempo real, compile e implemente la aplicación de alto nivel.
Compilación e implementación de la aplicación con respuesta en tiempo real
Vaya a la carpeta que contiene la aplicación compatible en tiempo real.
Abra el archivo app_manifest.json y compruebe que el identificador de componente de la aplicación de alto nivel se muestra en la funcionalidad AllowedApplicationConnections.
Abra una interfaz de línea de comandos mediante PowerShell, el símbolo del sistema de Windows o el shell de comandos de Linux. Vaya al directorio de compilación del proyecto.
Desde el directorio de compilación del proyecto, en el símbolo del sistema, ejecute CMake con los parámetros siguientes:
cmake --preset <preset-name> <source-path>
--preset <preset-name>
Nombre preestablecido de configuración de compilación tal como se define en CMakePresets.json.
--build <cmake-path>
Directorio binario que contiene la memoria caché de CMake. Por ejemplo, si ejecuta CMake en un ejemplo de Azure Sphere, el comando de compilación sería
cmake --build out/ARM-Debug
.<source-path>
Ruta de acceso del directorio que contiene los archivos de origen de la aplicación de ejemplo. En el ejemplo, el repositorio de ejemplos de Azure Sphere se descargó en un directorio denominado AzSphere.
Los parámetros de CMake se separan mediante espacios. El carácter de continuación de línea (^ para la línea de comandos de Windows, \ para la línea de comandos de Linux o " para PowerShell) se puede usar para mejorar la legibilidad, pero no es necesario.
En los ejemplos siguientes se muestran los comandos de CMake para intercoreComms RTApp:
Símbolo del sistema de Windows
cmake ^ --preset "ARM-Debug" ^ "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
Windows PowerShell
cmake ` --preset "ARM-Debug" ` "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
Desde el directorio de compilación del proyecto, en el símbolo del sistema, ejecute Ninja para compilar la aplicación y crear el archivo de paquete de imagen.
ninja -C out/ARM-Debug
Ninja coloca la aplicación resultante y los archivos .imagepackage en el directorio especificado.
También puede invocar Ninja a través de CMake con el siguiente comando:
cmake --build out/<binary-dir>
Establezca
<binary-dir>
en el directorio binario que contiene la memoria caché de CMake. Por ejemplo, si ejecuta CMake en un ejemplo de Azure Sphere, el comando de compilación seríacmake --build out/ARM-Debug
.Para solucionar problemas, especialmente después de realizar cambios en los comandos de CMake, elimine la compilación completa e inténtelo de nuevo.
Elimine las aplicaciones que ya están implementadas en el dispositivo:
azsphere device sideload delete
Desde el directorio de compilación del proyecto, en el símbolo del sistema, cargue el paquete de imagen que Ninja creó:
azsphere device sideload deploy --image-package <path-to-imagepackage>
La aplicación comenzará a ejecutarse poco después de cargarla.
- Obtención del identificador del componente para la imagen:
azsphere image-package show --image-package <path-to-imagepackage>
El comando devuelve todos los metadatos del paquete de imágenes. El identificador de componente de la aplicación aparece en la sección Identidad del tipo de imagen de aplicación. Por ejemplo:
Image package metadata:
Section: Identity
Image Type: Application
Component ID: <component id>
Image ID: <image id>
Compilación e implementación de la aplicación de alto nivel
Vaya a la carpeta que contiene la aplicación de alto nivel.
Abra el archivo app_manifest.json y compruebe que el identificador de componente de RTApp se muestra en la funcionalidad AllowedApplicationConnections.
Abra una interfaz de línea de comandos mediante PowerShell, el símbolo del sistema de Windows o el shell de comandos de Linux. Vaya al directorio de compilación del proyecto.
Desde el directorio de compilación del proyecto, en el símbolo del sistema, ejecute CMake con los parámetros siguientes:
cmake --preset <preset-name> <source-path>
--preset <preset-name>
Nombre preestablecido de configuración de compilación tal como se define en CMakePresets.json.
--build <cmake-path>
Directorio binario que contiene la memoria caché de CMake. Por ejemplo, si ejecuta CMake en un ejemplo de Azure Sphere, el comando de compilación sería
cmake --build out/ARM-Debug
.<source-path>
Ruta de acceso del directorio que contiene los archivos de origen de la aplicación de ejemplo. En el ejemplo, el repositorio de ejemplos de Azure Sphere se descargó en un directorio denominado AzSphere.
Los parámetros de CMake se separan mediante espacios. El carácter de continuación de línea (^ para la línea de comandos de Windows, \ para la línea de comandos de Linux o " para PowerShell) se puede usar para mejorar la legibilidad, pero no es necesario.
En los ejemplos siguientes se muestran los comandos de CMake para la aplicación de alto nivel IntercoreComms.
Desde el directorio de compilación del proyecto, en el símbolo del sistema, ejecute Ninja para compilar la aplicación y crear el archivo de paquete de imagen.
ninja -C out/ARM-Debug
Ninja coloca la aplicación resultante y los archivos .imagepackage en el directorio especificado.
También puede invocar Ninja a través de CMake con el siguiente comando:
cmake --build out/<binary-dir>
Establezca
<binary-dir>
en el directorio binario que contiene la memoria caché de CMake. Por ejemplo, si ejecuta CMake en un ejemplo de Azure Sphere, el comando de compilación seríacmake --build out/ARM-Debug
.Para solucionar problemas, especialmente después de realizar cambios en los comandos de CMake, elimine la compilación completa e inténtelo de nuevo.
Desde el directorio de compilación del proyecto, en el símbolo del sistema, cargue el paquete de imagen que Ninja creó:
azsphere device sideload deploy --image-package <package-name>
La aplicación comenzará a ejecutarse poco después de cargarla.
- Obtención del identificador del componente para la imagen:
azsphere image-package show --image-package <path-to-imagepackage>
El comando devuelve todos los metadatos del paquete de imágenes. El identificador de componente de la aplicación aparece en la sección Identidad del tipo de imagen de aplicación. Por ejemplo:
Image package metadata:
Section: Identity
Image Type: Application
Component ID: 25025d2c-66da-4448-bae1-ac26fcdd3627
Image ID: 49d3cb5b-0300-4e1f-904d-b730c7933c3f