Dela via


Felsöka realtidskompatibla program

Viktigt!

Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).

Här följer några felsökningssteg för problem som kan uppstå under utvecklingen av realtidskompatibla program (RTApps).

Felsökningsproblem

Felsökningen kan misslyckas av följande orsaker:

  • Windows Update ersätter USB-drivrutinen för realtidskärnor med en allmän drivrutin. Om du vill återställa felsökningsfunktionerna för realtidskärnor öppnar du ett kommandoradsgränssnitt med powershell- eller Windows-kommandotolken med administratörsbehörighet och återaktiverar felsökning i realtidskärnan. Den nödvändiga USB-drivrutinen installeras när du kör:

    azsphere device enable-development --enable-rt-core-debugging
    
  • Filen med felsökningsinställningar innehåller fel. I det här fallet kan felsökaren misslyckas med att starta. Om du har redigerat felsökningsinställningarna kontrollerar du att filens syntax är korrekt.

  • Felsökaren på chip kan redan ha startats i en annan kontext. Om du ser ett fel som "Felsökningsserver: Fel: det gick inte att binda gdb till socket på port 4444: Adressen används redan" eller "Fel: libusb_open() misslyckades med LIBUSB_ERROR_ACCESS", kontrollerar du om du redan har en openocd- eller gdb-process igång.

    Om du kör på Linux bör kommandot sudo lsof -n -i :4444 | grep LISTEN visa alla processer som håller port 4444 öppen. Om du ersätter 4444 med någon annan port som nämns i felmeddelandet bör du ange samma information för porten.

  • Du kanske saknar paketet libncurses5 i ditt Ubuntu 20.04-system. Om du ser ett fel, till exempel "fel vid inläsning av delade bibliotek: libncurses.so.5: det går inte att öppna filen för delat objekt: Ingen sådan fil eller katalog", bör du installera paketet på följande sätt:

    sudo add-apt-repository universe
    sudo apt-get install libncurses5
    
  • Om du försöker felsöka en högnivåapp och två RTApps samtidigt med flera instanser av Visual Studio kan den andra instansen av Visual Studio inte ansluta till felsökningsprogrammet. Du kan lösa det här problemet genom att felsöka alla appar från en enda instans av Visual Studio, enligt beskrivningen i Felsöka partnerprogram.

CMake-problem

Du kan stöta på följande problem när du använder CMake med en RTApp:

  • Första gången du öppnar ett CMake-projekt i Visual Studio körs CMakeLists-genereringen automatiskt och anger komponent-ID för programmet. Om du sedan tar bort komponent-ID:t, till exempel eftersom programmet finns på en GitHub-lagringsplats och du har gjort en hård återställning, misslyckas bygget. Lös problemet genom att återskapa CMake-cachen i Visual Studio.
  • Det CMakeLists.txt startobjektet återskapas ofta. CMakeLists-aktiviteten körs när Visual Studio återskapar CMake-cachen. Det kan därför köras ofta.
  • Visual Studio låser sig när du skapar en RTApp med CMake. Undvik det här problemet genom att använda Visual Studio 2019 update 1 eller senare.

Om det uppstår fel när du arbetar med CMake kan du prova att återskapa CMake-cachen. Detta löser ofta problem.