Compartir a través de


Depuración de una aplicación con respuesta en tiempo real

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

Las RTApps se depuran mediante OpenOCD, que se instala con el SDK de Azure Sphere y la versión de GDB que se instala como parte de la cadena de herramientas insertada de GNU de ARM.

Depuración de una aplicación RTApp con Visual Studio

  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 (RT Core) donde la aplicación de Azure Sphere es el nombre de la aplicación con respuesta en tiempo real 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 compatible en tiempo real, crea un paquete de imágenes, lo carga localmente en el panel 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 id. de imagen del paquete de imagen en la vista>salida>Mostrar salida de: Salida de compilación Cuando esté listo para crear una implementación, deberá conocer la ruta de acceso al paquete de imágenes.

  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.

Visual Studio establece las conexiones entre el servidor GDB y OpenOCD para que pueda usar la interfaz de depuración de Visual Studio estándar (F5, F6, F9 para puntos de interrupción, etc.) en una RTApp, de la misma manera que en una aplicación de alto nivel.

Mientras se detiene en un punto de interrupción en el código fuente de C, puede abrir una ventana Desensamblado que muestre la dirección actual, el ensamblador mnemonic para el comando actual e información como los registros implicados o el comando de código fuente que se está ejecutando.

Para abrir la ventana Desensamblado :

  1. Asegúrese de que el archivo fuente de código C que contiene el punto de interrupción esté abierto en Visual Studio.
  2. Seleccione Depurar desensamblaje>de Windows>o presione Alt+8.

Depuración de una aplicación RTApp con Visual Studio Code

Visual Studio Code se depura presionando F5 o ejecutando el comando de depuración desde la vista de depuración de la barra izquierda. En los ejemplos, el archivo .vscode/launch.json ya existe, por lo que la depuración se iniciará inmediatamente. En una nueva aplicación, la depuración primero preguntará si se trata de una aplicación HLApp o RTApp y creará un archivo .vscode/launch.json a partir de la respuesta. Después, se habilitará la depuración.

Mientras se detiene en un punto de interrupción en el código fuente de C, puede abrir una vista Desensamblar que muestre la dirección actual, los datos hexadecimales sin procesar, el mnemónico ensamblador para el comando actual e información como los registros implicados o el comando de código fuente que se está ejecutando.

Para abrir la vista Desensamblar:

  1. Asegúrese de que el archivo fuente de código C que contiene el punto de interrupción esté abierto en un editor de Visual Studio Code.
  2. Haga clic con el botón derecho en la ventana del editor y seleccione Abrir vista desensamblado o seleccione Ver>paleta>de comandos Abrir vista Desensamblado.

Depuración de una aplicación RTApp con la CLI

  1. Inicie la aplicación para su depuración:

    azsphere device app start --component-id <component id>
    

    Este comando devuelve el núcleo en el que se ejecuta la aplicación.

  2. Vaya a la carpeta Openocd para el sysroot con que se compiló la aplicación. En este inicio rápido, el sysroot es 5+Beta2004. Los sysroot se instalan en la carpeta de instalación del SDK de Azure Sphere. Por ejemplo, en Windows, la carpeta se instala de manera predeterminada en C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\5+Beta2004\tools\openocd y en Linux, en /opt/azurespheresdk/Sysroots/5+Beta2004/tools/sysroots/x86_64-pokysdk-linux/usr/bin/openocd.

  3. Ejecute openocd como se muestra en el ejemplo siguiente. En el ejemplo se da por supuesto que la aplicación se ejecuta en el núcleo 0. Si la aplicación se ejecuta en el núcleo 1, reemplace "targets io0" por "targets io1".

    openocd -f mt3620-rdb-ftdi.cfg -f mt3620-io0.cfg -c "gdb_memory_map disable" -c "gdb_breakpoint_override hard" -c init -c "targets io0" -c halt -c "targets"
    
  4. Abra una interfaz de línea de comandos mediante PowerShell, el símbolo del sistema de Windows o el shell de comandos de Linux.

  5. Vaya a la carpeta que contiene el archivo .out de la aplicación e inicie arm-none-eabi-gdb, que forma parte de la cadena de herramientas GNU insertadas de ARM:

    Símbolo del sistema de Windows

    "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
    
  6. El servidor OpenOCD proporciona una interfaz de servidor GDB en :4444. Establezca el destino para la depuración.

    target remote :4444

  7. Ejecute los comandos gdb que elija.

Desarrollo con aplicaciones de asociados

Cuando se carga una aplicación en el dispositivo de Azure Sphere, las herramientas de implementación de Azure Sphere eliminan de forma predeterminada todas las aplicaciones existentes. Para evitar que esto suceda al desarrollar aplicaciones que se comunican entre sí, debe marcar las aplicaciones como asociados. Al implementar una de las aplicaciones, sus asociados no se eliminarán. Consulte Marcado de aplicaciones como asociadas para más información.

Solución de problemas

Si experimenta algún problema, consulte Solución de problemas de las aplicaciones con respuesta en tiempo real.