Ladění aplikace podporující v reálném čase

RtApps se ladí pomocí OpenOCD, který se instaluje se sadou Azure Sphere SDK, a verze GDB, která se instaluje jako součást sady nástrojů ARM GNU Embedded Toolchain.

Ladění RTApp pomocí sady Visual Studio

  1. Ujistěte se, že je zařízení připojené k počítači přes USB. V nabídce Nastavit spouštěcí položku vyberte Azure Sphere App (RT Core), kde Azure Sphere App je název vaší aktuální aplikace podporující v reálném čase, nebo stiskněte klávesu F5.

    Tlačítko vzdáleného Ladicího programu GDB

  2. Pokud se zobrazí výzva k sestavení projektu, vyberte Ano. Visual Studio zkompiluje aplikaci podporující real-time, vytvoří balíček image, načte ho bokem na panel a spustí ho v režimu ladění. Zkušební načtení znamená, že se aplikace doručuje přímo z počítače přes kabelové připojení, nikoli prostřednictvím cloudu.

    Poznamenejte si ID image balíčku image v zobrazení>výstupu>zobrazit výstup z: Výstup sestavení : Až budete připraveni k vytvoření nasazení, budete muset znát cestu k balíčku image.

  3. Ve výchozím nastavení se v okně Výstup zobrazuje výstup z výstupu zařízení. Pokud chcete zobrazit zprávy z ladicího programu, vyberte v rozevírací nabídce Zobrazit výstup z možnost Ladit. Můžete také zkontrolovat přebírání programu, registry nebo paměť prostřednictvím nabídky Ladit>windows .

Visual Studio nastaví připojení mezi serverem GDB a OpenOCD, abyste mohli používat standardní ladicí rozhraní sady Visual Studio (F5, F6, F9 pro zarážky atd.) v aplikaci RTApp stejným způsobem jako v aplikaci vysoké úrovně.

Zatímco se zastavíte u zarážky ve zdrojovém kódu jazyka C, můžete otevřít okno Demontáž, které zobrazuje aktuální adresu, mnemotechnický assembler pro aktuální příkaz a informace, jako jsou zapojené registry nebo spouštěný příkaz zdrojového kódu.

Otevření okna Demontáž :

  1. Ujistěte se, že zdrojový soubor kódu C obsahující zarážku je otevřený v sadě Visual Studio.
  2. Vyberte DebugWindows> Disassembly (Ladit>Windows Disassembly) nebo stiskněte Alt+8.

Ladění RTApp pomocí editoru Visual Studio Code

Visual Studio Code se ladí stisknutím klávesy F5 nebo spuštěním příkazu ladění ze zobrazení ladění na levém panelu. V ukázkách už existuje soubor .vscode/launch.json, takže ladění se spustí okamžitě. V nové aplikaci se ladění nejprve zeptá, jestli se jedná o HLApp nebo RTApp, a z vaší odpovědi vytvoří soubor .vscode/launch.json. Ladění se pak povolí.

Zatímco se zastavíte u zarážky ve zdrojovém kódu jazyka C, můžete otevřít zobrazení Demontáž, které zobrazuje aktuální adresu, nezpracovaná šestnáctková data, mnemotechnický assembler pro aktuální příkaz a informace, jako jsou zapojené registry nebo spouštěný příkaz zdrojového kódu.

Otevření zobrazení Demontáž:

  1. Ujistěte se, že zdrojový soubor kódu C obsahující zarážku je otevřený v editoru Visual Studio Code.
  2. Buď klikněte pravým tlačítkem v okně editoru a vyberte Otevřít zobrazení demontáže, nebo vyberte Zobrazit>paletu> příkazůOtevřít zobrazení demontáže.

Ladění RTApp pomocí rozhraní příkazového řádku

  1. Spusťte aplikaci pro ladění:

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

    Tento příkaz vrátí jádro, na kterém aplikace běží.

  2. Přejděte do složky Openocd pro složku sysroot, se kterou byla aplikace vytvořena. V tomto rychlém startu je sysroot 5+Beta2004. Sysroots se instalují do instalační složky sady Azure Sphere SDK. Například ve Windows je složka ve výchozím nastavení nainstalovaná v C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\5+Beta2004\tools\openocd a v Linuxu na adrese /opt/azurespheresdk/Sysroots/5+Beta2004/tools/sysroots/x86_64-pokysdk-linux/usr/bin/openocd.

  3. Spusťte openocd , jak ukazuje následující příklad. Příklad předpokládá, že aplikace běží na jádru 0. Pokud aplikace běží na jádru 1, nahraďte "targets io0" "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. Otevřete rozhraní příkazového řádku pomocí PowerShellu, příkazového řádku Windows nebo linuxového příkazového prostředí.

  5. Přejděte do složky, která obsahuje soubor .out aplikace, a spusťte arm-none-eabi-gdb, který je součástí sady nástrojů ARM GNU Embedded Toolchain:

    Příkazový řádek 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. Server OpenOCD poskytuje rozhraní serveru GDB na serveru :4444. Nastavte cíl ladění.

    target remote :4444

  7. Spusťte všechny příkazy gdb, které zvolíte.

Vývoj s využitím partnerských aplikací

Když načtete aplikaci do zařízení Azure Sphere, nástroje pro nasazení Azure Sphere ve výchozím nastavení odstraní všechny existující aplikace. Pokud chcete zabránit tomu, aby k tomu docházelo při vývoji aplikací, které spolu vzájemně komunikují, musíte aplikace označit jako partnery. Když nasadíte jednu z aplikací, její partneři se neodstraní. Podrobnosti najdete v tématu Označování aplikací jako partnerů .

Řešení potíží

Pokud narazíte na problémy, přečtěte si téma Řešení potíží s aplikacemi podporujícími v reálném čase.