Dela via


Felsöka ett program som kan användas i realtid

RTApps debuggeds med OpenOCD, som installeras med Azure Sphere SDK, och den version av GDB som installeras som en del av ARM GNU Embedded Toolchain.

Felsöka RTApp med Visual Studio

  1. Kontrollera att enheten är ansluten till datorn via USB. På menyn Ange startobjekt väljer du Azure Sphere-appen (RT Core) där Azure Sphere-appen är namnet på ditt aktuella realtidsaktiveringsprogram eller trycker på F5.

    Felsökarknapp för fjärr-GDB

  2. Om du uppmanas att skapa projektet väljer du Ja. Visual Studio kompilerar det realtidsaktiverade programmet, skapar ett avbildningspaket, separat inläser det på tavlan och startar det i felsökningsläge. Separat inläsning innebär att programmet levereras direkt från datorn via en fast anslutning i stället för att levereras via molnet.

    Observera avbildnings-ID för avbildningspaketet i Visa>utdata> från: Skapautdata När du är redo att skapa en distribution måste du känna till sökvägen till avbildningspaketet.

  3. Som standard visar fönstret Utdata utdata från Enhetsutdata. Om du vill se meddelanden från felsökaren väljer du Felsök i listrutan Visa utdata från: . Du kan också kontrollera programdemonteringen, registren eller minnet via Menyn Felsöka>Windows .

Visual Studio konfigurerar anslutningar mellan GDB-servern och OpenOCD så att du kan använda Visual Studio-standardgränssnittet för felsökning (F5, F6, F9 för brytpunkter och så vidare) på en RTApp, på samma sätt som i en app på hög nivå.

När den stoppas vid en brytpunkt i C-källkoden kan du öppna ett demonteringsfönster som visar den aktuella adressen, assembler-mnemonic för det aktuella kommandot och information som de berörda registerna eller källkodskommandot som körs.

Så här öppnar du fönstret Demontera :

  1. Kontrollera att C-kodkällfilen som innehåller brytpunkten är öppen i Visual Studio.
  2. Välj Debug>Windows>Disassembly eller tryck på Alt+8.

Felsöka RTApp med Visual Studio-kod

Visual Studio-kod kopplas från genom att trycka på F5 eller köra felsökningskommandot från felsökningsvyn i det vänstra fältet. I exemplen finns .vscode/launch.json redan, så felsökningen startar omedelbart. I en ny app frågar felsökning först om det här är en HLApp eller RTApp, och skapar en .vscode/launch.json från ditt svar. Felsökning aktiveras sedan.

När den stoppas vid en brytpunkt i C-källkoden kan du öppna en demonterad vy som visar den aktuella adressen, rådata för hex, assembler-mnemonic för det aktuella kommandot och information som de aktuella registren eller källkodskommandot som körs.

Så här öppnar du vyn Demontera:

  1. Kontrollera att C-kodkällfilen som innehåller brytpunkten är öppen i en Visual Studio-kodredigerare.
  2. Högerklicka i redigeringsfönstret och välj Öppna demonteringsvy eller välj Visa>kommandopaletten>Öppna demonteringsvy.

Felsöka RTApp med CLI

  1. Starta programmet för felsökning:

    az sphere device app start --component-id <component id>
    

    Det här kommandot returnerar kärnan som programmet körs på.

  2. Navigera till openocd-mappen för den sysroot som programmet skapades med. I den här snabbstarten är sysroot 5+Beta2004. Sysroots installeras i Azure Sphere SDK-installationsmappen. I Windows är mappen till exempel installerad som standard i C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\5+Beta2004\tools\openocd och på Linux, på /opt/azurespheresdk/Sysroots/5+Beta2004/tools/sysroots/x86_64-pokysdk-linux/usr/bin/openocd.

  3. Kör openocd som i följande exempel. I exemplet förutsätts att appen körs på core 0. Om appen körs på core 1 ersätter du "targets io0" med "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. Öppna ett kommandoradsgränssnitt med PowerShell, Windows-kommandotolken eller Linux-kommandogränssnittet.

  5. Navigera till mappen som innehåller .out-filen och starta arm-none-eabi-gdb, som är en del av ARM GNU Embedded Toolchain:

    Kommandotolken i 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. OpenOCD-servern har ett GDB-servergränssnitt på :4444. Ange målet för felsökning.

    target remote :4444

  7. Kör de gdb-kommandon du väljer.

Utveckla med partnerappar

När du läser in ett program på Azure Sphere-enheten tar Azure Sphere-distributionsverktygen som standard bort alla befintliga program. För att förhindra att detta händer när du utvecklar program som kommunicerar med varandra måste du markera programmen som partner. När du distribuerar ett av programmen tas dess partner inte bort. Mer information finns i Markera program som partner .

Felsökning

Om du stöter på problem kan du läsa Felsöka program som kan användas i realtid.