Compartir vía


Solucionar problemas de aplicaciones compatibles con tiempo real

Estos son algunos pasos de solución de problemas que pueden ocurrir durante el desarrollo de aplicaciones compatibles con tiempo real (RTApps).

Depurar problemas

Es posible que se produzcan errores en la depuración por los siguientes motivos:

  • Windows Update reemplaza el controlador USB de los núcleos en tiempo real por un controlador genérico. Para restaurar la funcionalidad de depuración de los núcleos en tiempo real, abre una interfaz de línea de comandos con PowerShell o símbolo del sistema de Windows con privilegios de administrador y vuelve a habilitar la depuración de núcleos en tiempo real. El controlador USB necesario se instala al ejecutar:

    azsphere device enable-development --enable-rt-core-debugging
    
  • El archivo de configuración de depuración contiene errores. En esta situación, es posible que el depurador no se inicie. Si ha modificado la configuración del depurador, asegúrese de que la sintaxis del archivo es correcta.

  • Es posible que el depurador integrado ya se haya iniciado en otro contexto. Si ve un error como "Debugger Server: Error: couldn't bind gdb to socket on port 4444: Address already in use" or "Error: libusb_open() failed with LIBUSB_ERROR_ACCESS", compruebe si ya tiene un proceso openocd o gdb en ejecución.

    Si está ejecutando en Linux, el comando sudo lsof -n -i :4444 | grep LISTEN debe mostrar cualquier proceso que contiene el puerto 4444 abierto. Reemplazar con 4444 cualquier otro puerto mencionado en el mensaje de error debería proporcionar la misma información para ese puerto.

  • Puede que te falte el paquete libncurses5 en tu sistema Ubuntu 20.04. Si ves un error como "error al cargar bibliotecas compartidas: libncurses.so.5: no se puede abrir el archivo de objeto compartido: No hay ningún archivo o directorio", debes instalar el paquete de la siguiente manera:

    sudo add-apt-repository universe
    sudo apt-get install libncurses5
    
  • Si intenta depurar una aplicación de alto nivel y dos RTApps a la vez usando varias instancias de Visual Studio, la segunda instancia de Visual Studio no podrá conectarse al depurador. Para solucionar este problema, des debug todas las aplicaciones desde una única instancia de Visual Studio, como se describe en Depurar aplicaciones de partners.

CMake problems

Puede encontrar los siguientes problemas al usar CMake con una RTApp:

  • La primera vez que abra un proyecto CMake en Visual Studio, la generación CMakeLists se ejecuta automáticamente y establece el id. del componente para la aplicación. Si después eliminas el id. del componente (por ejemplo, porque la aplicación está en un repositorio de GitHub y has realizado un restablecimiento completo), la compilación falla. Para resolver este problema, vuelva a generar la caché de CMake en Visual Studio.
  • El elemento de inicio CMakeLists.txt se regenera con frecuencia. La tarea CMakeLists se ejecuta siempre que Visual Studio regenera la caché de CMake. Como resultado, puede ejecutarse a menudo.
  • Visual Studio se bloquea al crear una RTApp con CMake. Para evitar este problema, usa la actualización 1 de Visual Studio 2019 o posterior.

Como nota general, si se producen errores al trabajar con CMake, intente regenerar la caché de CMake. Esto suele resolver problemas.