Compartir a través de


Compilación de una aplicación de alto nivel

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 una aplicación de alto nivel de Azure Sphere.

Estas instrucciones usan la aplicación de ejemplo HelloWorld_HighLevelApp como ejemplo.

Requisitos previos

Preparación del dispositivo para desarrollo y 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 instalación de prueba. 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. Preparar el dispositivo para la instalación de prueba quita esta restricción.

El comando azsphere device enable-development configura el dispositivo para aceptar aplicaciones para la depuración, carga el servidor de depuración en el dispositivo y asigna el dispositivo a un grupo de dispositivos 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.

  1. Asegúrese de que el dispositivo de Azure Sphere está conectado al equipo y que el equipo está conectado a Internet.

  2. Abra una interfaz de línea de comandos mediante PowerShell, el símbolo del sistema de Windows o el shell de comandos de Linux.

  3. Escriba el comando siguiente:

    azsphere device enable-development
    

    Debería ver un resultado similar al siguiente:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

Si se produce un error en el comando azsphere device enable-development , consulte Solución de problemas de Azure Sphere para obtener ayuda.

Compilación e implementación de la aplicación en Visual Studio con depuración

  1. 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 (HLCore) donde aplicación de Azure Sphere es el nombre de la aplicación de alto nivel actual o presione F5.

    Botón Depurador GDB remoto

  2. Si se le solicita que compile el proyecto, seleccione . Visual Studio compila la aplicación, crea un paquete de imágenes, lo transfiere localmente a la placa y lo inicia en modo de depuración. Por transferencia local se entiende que la aplicación se entrega directamente desde el equipo mediante una conexión con cable, en lugar de entregarse mediante la nube.

    Tenga en cuenta el identificador de imagen del paquete de imagen en la salida>Ver>salida de: Salida de: Salida de compilación. Usará el identificador de imagen más adelante en Tutorial: Creación de una implementación en la nube.

  3. 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 e implementación de la aplicación en Visual Studio sin depurar

  1. Asegúrese de que el dispositivo esté conectado al equipo mediante USB. En el menú Depurar, seleccione Iniciar sin depurar o presione Ctrl+F5.

  2. Si se le solicita que compile el proyecto, seleccione . Visual Studio compila la aplicación, crea un paquete de imágenes, lo carga localmente en el panel y lo inicia. Por transferencia local se entiende que la aplicación se entrega directamente desde el equipo mediante una conexión con cable, en lugar de entregarse mediante la nube.

  3. De forma predeterminada, la ventana Salida muestra la salida de salida del dispositivo.

Compilación e implementación de la aplicación en Visual Studio Code con depuración

  1. 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.

  2. Espere varios segundos para que Visual Studio Code compile la aplicación, cree un paquete de imágenes, impleméntelo en la placa e inícielo 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 la aplicación debe compilarse. Si es así, el foco cambia a la ventana de salida, que muestra la salida de CMake/Build.

    A continuación, el panel Salida muestra el resultado a medida que se implementa el paquete de imágenes en el dispositivo. Por último, la consola de depuración recibe el foco y muestra la salida del depurador.

Compilación e implementación de la aplicación en Visual Studio Code sin depurar

  1. Asegúrese de que el dispositivo esté conectado al equipo mediante USB. En el menú Ejecutar , seleccione Iniciar sin depurar o presione Ctrl+F5 para compilar y ejecutar el proyecto. Si el proyecto no se ha compilado anteriormente o si se han cambiado los archivos y se requiere la regeneración, Visual Studio Code compilará el proyecto.

  2. Espere varios segundos para que Visual Studio Code compile la aplicación, cree un paquete de imagen, impleméntelo en el panel e inícielo. Verá las actualizaciones de estado en el panel Salida a lo largo del proceso.

    En primer lugar, CMake determina si la aplicación debe compilarse. Si es así, el foco cambia a la ventana de salida, que muestra la salida de CMake/Build.

    A continuación, la ventana de salida muestra la salida de azsphere a medida que implementa el paquete de imágenes en el dispositivo. La aplicación se inicia automáticamente después de implementarla en el dispositivo.

Compilar la aplicación

Para compilar la aplicación, tendrá que buscar las herramientas de compilación, las bibliotecas y los encabezados correctos, denominados en conjunto sysroot, en el equipo. El SDK de Azure Sphere se incluye con varias sysroot para que las aplicaciones puedan tener como destino diferentes conjuntos de API, 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.

  1. Cree o vaya al directorio que contendrá los archivos que se van a generar durante el proceso de compilación.

  2. Si la aplicación depende de otra aplicación, marque las aplicaciones como asociadas en sus archivos app_manifest.md.

  3. Agregue o actualice el archivo CMakeLists.txt de la aplicación para que llame a las funciones CMake de Azure Sphere según sea necesario.

  4. 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 Hola mundo.

    Símbolo del sistema de Windows

    cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

    cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    
  5. 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ía cmake --build out/ARM-Debug.

Implementación de la aplicación

Asegúrese de que el dispositivo tiene la funcionalidad appDevelopment para que pueda transferir localmente la aplicación y asegúrese de que el servidor de depuración está presente. Si es necesario, use el comando azsphere device enable-development.

  1. Si el dispositivo ya ejecuta una o varias aplicaciones, elimínelas.

    azsphere device sideload delete
    

    Tenga en cuenta que este comando elimina todas las aplicaciones del dispositivo. Si ya ha implementado una aplicación RTApp asociada a la aplicación de alto nivel, use el parámetro --component-id para especificar qué aplicación va a eliminar. Puede encontrar el identificador de componente de la aplicación en su archivo app_manifest.json.

  2. Cargue el paquete de imágenes en el dispositivo ejecutando el comando azsphere device sideload deploy y especificando el paquete de imágenes. Por ejemplo:

    azsphere device sideload deploy --image-package C:\Users\LocalSamples\HelloWorld\HelloWorld_HighLevelApp\out\ARM-Debug\HelloWorld_HighLevelApp.imagepackage
    

La aplicación comenzará a ejecutarse.

Puede detenerla más adelante y reiniciarla con los comandos azsphere device app stop --component-id <component-ID> y azsphere device app start --component-id <component ID>.