Sdílet prostřednictvím


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

Důležité

Toto je dokumentace k Azure Sphere (starší verze). Azure Sphere (starší verze) se vyřazuje 27. září 2027 a uživatelé musí do této doby migrovat do Azure Sphere (integrované). K zobrazení dokumentace k Azure Sphere (integrované) použijte selektor verzí umístěný nad obsahem.

RtApps se ladí pomocí OpenOCD, který se instaluje se sadou Azure Sphere SDK, a verze GDB, která je nainstalovaná jako součást sady NÁSTROJŮ ARM GNU Embedded Toolchain.

Ladění RTApp pomocí sady Visual Studio

  1. Ujistěte se, že je vaše zařízení připojené k počítači přes USB. V nabídce Nastavit spouštěcí položku vyberte aplikaci Azure Sphere (RT Core), ve které je aplikace Azure Sphere názvem 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í v reálném čase, vytvoří balíček image, načte ho na panel a spustí ji v režimu ladění. Zkušební načtení znamená, že aplikace je doručována přímo z počítače přes kabelové připojení, a 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 zobrazí výstup z výstupu zařízení. Pokud chcete zobrazit zprávy z ladicího programu, vyberte Ladit z rozevírací nabídky Zobrazit výstup z: Pomocí nabídky Ladění>systému Windows můžete také zkontrolovat demontáž, registraci nebo paměť programu.

Visual Studio nastavuje 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ě.

Během zastavení na zarážce ve zdrojovém kódu jazyka C můžete otevřít okno zpětného překladu, které zobrazuje aktuální adresu, assembler mnemonic pro aktuální příkaz, a informace, jako jsou registrace zahrnuté nebo spuštěný příkaz zdrojového kódu.

Otevření okna zpětného překladu:

  1. Ujistěte se, že je zdrojový soubor kódu jazyka C obsahující zarážku otevřený v sadě Visual Studio.
  2. Vyberte Ladění>zpětného překladu systému Windows>nebo stiskněte Alt+8.

Ladění RTApp pomocí editoru Visual Studio Code

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

Při zastavení na zarážce ve zdrojovém kódu jazyka C můžete otevřít zobrazení zpětného překladu, které zobrazuje aktuální adresu, nezpracovaná šestnáctková data, měmonic assembleru pro aktuální příkaz a informace, jako jsou například registrace, které se týkají, nebo příkaz zdrojového kódu, který se spouští.

Otevření zobrazení zpětného překladu:

  1. Ujistěte se, že je zdrojový soubor kódu jazyka C obsahující zarážku otevřený v editoru Visual Studio Code.
  2. V okně editoru klikněte pravým tlačítkem myši a vyberte Otevřít zobrazení zpětného překladu nebo vyberte >Zobrazit paletu>příkazů Otevřít zobrazení zpětného překladu.

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

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

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

    Tento příkaz vrátí jádro, na kterém je aplikace spuštěná.

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

  3. Spuštění openocd jako následující příklad ukazuje. V příkladu se předpokládá, že aplikace běží na jádru 0. Pokud aplikace běží na jádru 1, nahraďte "targets io0" za "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 příkazového prostředí Linuxu.

  5. Přejděte do složky, která obsahuje soubor .out aplikace, a spusťte arm-none-eabi-gdb, který je součástí 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 :4444. Nastavte cíl pro ladění.

    target remote :4444

  7. Spusťte libovolné 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. Abyste tomu zabránili při vývoji aplikací, které vzájemně komunikují, musíte aplikace označit jako partnery. Když nasadíte některou z aplikací, její partneři se neodstraní. Podrobnosti najdete v tématu Označení aplikací jako partnerů .

Řešení problému

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.