Tutorial: Erstellen einer Anwendung auf hoher EbeneTutorial: Build a high-level application

Eine Anwendung auf hoher Ebene wird auf dem Azure Sphere Betriebssystem ausgeführt, verwendet die Azure Sphere Anwendungs Bibliotheken und kann mit dem Internet und cloudbasierten Diensten kommunizieren.A high-level application runs on the Azure Sphere OS, uses the Azure Sphere application libraries, and can communicate with the internet and with cloud-based services. Grundlegende Informationen zu Anwendungen auf hoher Ebene finden Sie unter Übersicht über Azure Sphere Anwendungen .See Overview of Azure Sphere applications for basic information about high-level applications.

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you learn how to:

  • Bereiten Ihres Geräts für Entwicklung und DebuggingPrepare your device for development and debugging
  • Erstellen und Ausführen einer Anwendung auf hoher EbeneBuild and run a high-level application
  • Anwendungs Updates erneut aktivierenReenable application updates

VoraussetzungenPrerequisites

Bereiten Ihres Geräts für Entwicklung und DebuggingPrepare your device for development and debugging

Bevor Sie eine Beispielanwendung auf Ihrem Azure Sphere-Gerät erstellen oder neue Anwendungen dafür entwickeln können, müssen Sie die Entwicklung und das Querladen aktivieren.Before you can build a sample application on your Azure Sphere device or develop new applications for it, you must enable development and sideloading. Standardmäßig sind Azure Sphere-Geräte „gesperrt“. Sie erlauben also nicht, dass Anwendungen, die sich in der Entwicklung befinden, von einem Computer geladen werden, und auch das Debuggen von Anwendungen ist unzulässig.By default, Azure Sphere devices are "locked"; that is, they do not allow applications under development to be loaded from a computer, and they do not allow debugging of applications. Durch die Vorbereitung des Geräts zum Querladen wird diese Einschränkung aufgehoben.Preparing the device for sideloading removes this restriction.

Mit dem Befehl azsphere Device enable-Development wird das Gerät so konfiguriert, dass es debugginganwendungen akzeptiert, der debuggingserver auf das Gerät geladen wird und das Gerät einer Gerätegruppe zugewiesen wird, die cloudanwendungsupdates nicht zulässt.The azsphere device enable-development command configures the device to accept applications for debugging, loads the debugging server onto the device, and assigns the device to a device group that does not allow cloud application updates. Während der Anwendungsentwicklung und des Debuggens sollten Sie das Gerät in dieser Gruppe belassen, damit Cloudanwendungsupdates die Anwendung in der Entwicklungsphase nicht überschreiben.During application development and debugging, you should leave the device in this group so that cloud application updates do not overwrite the application under development.

  1. Stellen Sie sicher, dass Ihr Azure Sphere Gerät mit Ihrem Computer verbunden ist und dass der Computer mit dem Internet verbunden ist.Make sure that your Azure Sphere device is connected to your computer, and your computer is connected to the internet.

  2. Öffnen Sie eine Azure Sphere Developer-Eingabeaufforderung (Windows) oder ein Terminalfenster (Linux).Open an Azure Sphere Developer Command Prompt (Windows) or a terminal window (Linux).

  3. Geben Sie den folgenden Befehl ein:Enter the following command:

    azsphere device enable-development

    Die Ausgabe sollte etwa folgendermaßen aussehen:You should see output similar to the following:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

Wenn der Befehl azsphere Device enable-Development mit der folgenden Fehlermeldung fehlschlägt, finden Sie weitere Informationen unter Beheben von Azure Sphere Problemen .If the azsphere device enable-development command fails with the following error message, see Troubleshoot Azure Sphere issues for help.

error: The device did not accept the device capability configuration. Please check the Azure Sphere OS on your device is up-to-date using 'azsphere device show-deployment-status'.

Erstellen und Ausführen der Anwendung auf hoher Ebene mit Visual Studio CodeBuild and run the high-level application with Visual Studio Code

In diesem Tutorial wird die Azure Sphere Blink-Vorlage verwendet, die Teil der Azure Sphere Erweiterung für Visual Studio Code ist.This tutorial uses the Azure Sphere Blink template, which is part of the Azure Sphere Extension for Visual Studio Code. Die Blink Vorlage bverknüpft eine LED, damit Sie überprüfen können, ob das Azure Sphere Gerät und die Tools ordnungsgemäß installiert und eingerichtet sind.The Blink template blinks an LED so you can verify that the Azure Sphere device and tools are installed and set up correctly.

  1. Starten Sie Visual Studio Code.Start Visual Studio Code. Wählen ViewSie > Befehls Paletteanzeigen aus, und geben Sie dann Azure Sphere: Neues Projekt generieren ein.Select View > Command palette, and then type Azure Sphere: Generate New Project.

    Befehlsleiste in Visual Studio Code

  2. Wählen Sie im Menü Vorlagen die Option blinken aus.Choose Blink from the Templates menu.

    Popup Menü mit Vorlagen Namen

  3. Visual Studio Code zeigt dann ein Datei-Explorer-Fenster an.Visual Studio Code then displays a File Explorer window. Navigieren Sie zu dem Ordner, in dem Sie die Blink Anwendung platzieren möchten.Navigate to the folder where you want to place the Blink application. Visual Studio Code erstellt den blinkordner am ausgewählten Speicherort und generiert die Builddateien für die Blink Anwendung.Visual Studio Code creates the Blink folder in your selected location and generates the build files for the Blink application. Es sollten Meldungen von CMake angezeigt werden.You should see messages from CMake.

  4. Öffnen Sie die Datei CMakeLists.txt, und ändern Sie die Einstellung TARGET_DIRECTORY, um den Ordner anzugeben, der Definitionen für die von Ihnen verwendete Hardware enthält.Open the CMakeLists.txt file and change the TARGET_DIRECTORY setting to specify the folder that contains definitions for the hardware you're using. Standardmäßig gibt die TARGET_DIRECTORY hardwaredefinitionen/mt3620_rbd an, die mit dem Seeed Azure Sphere mt3620 Development Kit übereinstimmen:By default, the TARGET_DIRECTORY specifies HardwareDefinitions/mt3620_rbd, which matches the Seeed Azure Sphere MT3620 Development Kit:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")

    Mit der Vorlage werden mehrere Hardware Definitionen bereitgestellt.Several hardware definitions are provided with the template. Wenn Sie z. b. ein Seeed MT3620 Mini dev Board verwenden, geben Sie stattdessen hardwaredefinitionen/seeed_mt3620_mdb an.For example, if you're using a SEEED MT3620 Mini Dev Board, specify HardwareDefinitions/seeed_mt3620_mdb instead.

  5. Drücken Sie F5, um das Projekt zu erstellen und Debuggen.Press F5 to build and debug the project. Wenn das Projekt noch nicht erstellt wurde oder wenn Dateien geändert und neu erstellt werden müssen, erstellt Visual Studio Code das Projekt, bevor das Debuggen gestartet wird.If the project has not previously been built, or if files have changed and rebuilding is required, Visual Studio Code will build the project before debugging starts.

  6. Warten Sie einige Sekunden, bis Visual Studio Code die Anwendung erstellt haben, erstellen Sie ein Abbild Paket, stellen Sie es auf dem Board bereit, und starten Sie es im Debugmodus.Wait several seconds for Visual Studio Code to build the application, create an image package, deploy it to the board, and start it in debug mode. Statusaktualisierungen werden gleichzeitig im Ausgabebereich angezeigt.You'll see status updates in the Output pane along the way.

    Zuerst bestimmt cmake, ob die Anwendung erstellt werden muss.First, CMake determines whether the application needs to be built. Wenn dies der Fall ist, wechselt der Fokus zum Ausgabefenster, in dem die Ausgabe von cmake/Build angezeigt wird.If so, focus shifts to the output window, which displays the output from CMake/Build.

    Als Nächstes wird im Ausgabefenster die Ausgabe von azsphere angezeigt, wenn das Imagepaket auf dem Gerät bereitgestellt wird.Next, the output window shows the output from azsphere as it deploys the image package to the device. Abschließend erhält die Debugging-Konsole den Fokus, und die gdb-Ausgabe wird angezeigt.Finally, the Debug Console receives focus and shows gdb output.

    Tipp

    Notieren Sie sich den Pfad in der Buildausgabe, der den Speicherort des Ausgabe Image Pakets angibt.Make a note of the path in the Build output, which indicates the location of the output image package. Sie verwenden das Imagepaket später im Schnellstart für die Bereitstellung.You'll use the image package later in the Deployment Quickstart.

  7. Nach einer kurzen Verzögerung sollte eine LED blinken.After a short delay, you should see an LED blink.

  8. Legen Sie in „main.c“ einen Breakpoint fest, und durchlaufen Sie die Anwendung Schritt für Schritt, damit Sie die Visual Studio Code-Debugfeatures für Azure Sphere erkunden können.Set a breakpoint somewhere in main.c and step through the application, so that you can explore the Visual Studio Code debugging features for Azure Sphere.

Erstellen und Ausführen der Anwendung auf hoher Ebene mit Visual StudioBuild and run the high-level application with Visual Studio

In diesem Tutorial wird die Azure Sphere Blink-Vorlage verwendet, die Teil der Azure Sphere Erweiterung für Visual Studio ist.This tutorial uses the Azure Sphere Blink template, which is part of the Azure Sphere Extension for Visual Studio. Die Blink Vorlage bverknüpft eine LED, damit Sie überprüfen können, ob das Azure Sphere Gerät und die Tools ordnungsgemäß installiert und eingerichtet sind.The Blink template blinks an LED so you can verify that the Azure Sphere device and tools are installed and set up correctly.

  1. Wenn Visual Studio neu für Sie ist, sollten Sie sich den Schnellstart oder die Produkttour ansehen, um mehr über die Navigation und Verwendung zu erfahren.If you are new to Visual Studio, consider the Quickstart or Guided Tour to learn about navigating and using it.

  2. Öffnen Sie Visual Studio, und wählen Sie Neues Projekt erstellen aus.Open Visual Studio and select Create a new project. Geben Sie im Suchfeld "Azure Sphere" ein, um eine Liste mit Azure Sphere Vorlagen zu erhalten.In the Search box, type 'azure sphere' to get a list of Azure Sphere templates. Wählen Sie Azure Sphere blinken aus der Liste aus.Choose Azure Sphere Blink from the list.

  3. Geben Sie einen Namen und einen Speicherort für das Projekt ein, und wählen Sie dann Erstellenaus.Enter a name and location for the project, and then select Create.

  4. Öffnen Sie die Datei CMakeLists.txt, und ändern Sie die Einstellung TARGET_DIRECTORY, um den Ordner anzugeben, der Definitionen für die von Ihnen verwendete Hardware enthält.Open the CMakeLists.txt file and change the TARGET_DIRECTORY setting to specify the folder that contains definitions for the hardware you're using. Standardmäßig gibt die TARGET_DIRECTORY hardwaredefinitionen/mt3620_rbd an, die mit dem Seeed Azure Sphere mt3620 Development Kit übereinstimmen:By default, the TARGET_DIRECTORY specifies HardwareDefinitions/mt3620_rbd, which matches the Seeed Azure Sphere MT3620 Development Kit:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")

    Mit der Vorlage werden mehrere Hardware Definitionen bereitgestellt.Several hardware definitions are provided with the template. Wenn Sie z. b. ein Seeed MT3620 Mini dev Board verwenden, geben Sie stattdessen hardwaredefinitionen/seeed_mt3620_mdb an.For example, if you're using a SEEED MT3620 Mini Dev Board, specify HardwareDefinitions/seeed_mt3620_mdb instead.

  5. Wählen Sie in Visual Studio Ansicht > Ausgabe aus, um das Ausgabefenster anzuzeigen.In Visual Studio, select View > Output to display the Output window.

  6. Stellen Sie sicher, dass das Gerät über USB mit Ihrem PC verbunden ist.Ensure that your device is connected to your PC by USB. Wählen Sie im Startmenü festlegen den Eintrag gdb-Debugger (hlcore) aus, oder drücken Sie F5.In the Set startup item, select GDB Debugger (HLCore) or press F5.

    Remote GDB Debugger-Schaltfläche

  7. Wenn Sie aufgefordert werden, das Projekt zu kompilieren, wählen Sie Ja aus.If you are prompted to build the project, select Yes. Visual Studio kompiliert die Anwendung, erstellt ein Imagepaket, lädt es per Querladen auf das Board und startet es im Debugmodus.Visual Studio compiles the application, creates an image package, sideloads it onto the board, and starts it in debug mode. Querladen bedeutet, dass die Anwendung direkt vom PC über eine drahtgebundene Verbindung und nicht über die Cloud übermittelt wird.Sideloading means that the application is delivered directly from the PC over a wired connection, rather than delivered through the cloud.

    Notieren Sie sich den Pfad in der Buildausgabe, der den Speicherort des ausgegebenen Imagepakets auf Ihrem PC angibt.Note the path in the Build output, which indicates the location of the output image package on your PC. Sie verwenden das Abbild Paket später in Tutorial: Erstellen einer cloudbereitstellung.You'll use the image package later in Tutorial: Create a cloud deployment.

  8. Standardmäßig wird im Ausgabefenster die Ausgabe von Geräteausgabe angezeigt.By default, the Output window shows output from Device Output. Um Meldungen vom Debugger anzuzeigen, wählen Sie Debug aus dem Dropdownmenü Ausgabe anzeigen von: .To see messages from the debugger, select Debug from the Show output from: dropdown menu. Sie können auch die Programmdisassemblierung, die Register oder den Arbeitsspeicher über das Menü Debug > Windows untersuchen.You can also inspect the program disassembly, registers, or memory through the Debug > Windows menu.

  9. Wenn Sie das Programm ausführen, sollte eine LED blinken.When you run the program, you should see an LED blink.

Erstellen Sie das Beispiel über die Befehlszeile.Build the sample on the command line

Befolgen Sie zum Erstellen der Build- und IMAGEPACKAGE-Dateien für die Beispielanwendung HelloWorld_HighLevelApp die folgenden Schritte.To create the build and .imagepackage files for the HelloWorld_HighLevelApp sample application, follow these steps.

  1. Git installieren.Install Git.

  2. Klonen Sie das gesamte Repository mit den Azure Sphere-Beispielen:Clone the entire Azure Sphere samples repo:

    git clone https://github.com/Azure/azure-sphere-samples.git

  3. Erstellen Sie das Verzeichnis, das die während des Buildprozesses generierten Build- und „.imagepackage“-Dateien enthalten wird, oder navigieren Sie zu diesem Verzeichnis.Create or navigate to the directory that will contain the build .imagepackage files that will be generated during the build process. Um beispielsweise ein neues Verzeichnis namens „buildfiles“ zu erstellen und zu öffnen, geben Sie die folgenden Befehle ein:For example, to create and open a new directory called "buildfiles" you would enter the following commands:

    mkdir buildfiles
    cd buildfiles
    
  4. Passen Sie das Beispiel ggf. an Ihre Hardware an.Update the sample to target your hardware, if necessary. Standardmäßig sind die Beispiele für Hardware konzipiert, die auf das MT3620 Reference Board Design (RDB) folgt, wie z. b. das MT3620 Development Kit aus den Seeed Studio.By default, the samples target hardware that follows the MT3620 reference board design (RDB), such as the MT3620 Development Kit from Seeed Studios. Weitere Zielhardware Definitionen für die Beispielanwendungen sind im Verzeichnis hardwaredefinitionen des Azure Sphere beispielrepository verfügbar.Additional target hardware definitions for the sample applications are available in the HardwareDefinitions directory of the Azure Sphere Samples repo. Die Hardware Definitions Dateien für das Avnet MT3620 Starter Kit befinden sich beispielsweise im Unterverzeichnis hardwaredefinitions/avnet_mt3620_sk.For example, the hardware definition files for the Avnet MT3620 Starter Kit are in the HardwareDefinitions/avnet_mt3620_sk subdirectory.

    • Öffnen Sie CMakeLists.txt, und aktualisieren Sie den TARGET_DIRECTORY-Parameter in der azure_target_hardware_definition -Funktion so, dass Sie auf das Unterverzeichnis der Hardware verweist.Open CMakeLists.txt and update the TARGET_DIRECTORY parameter in the azure_target_hardware_definition function to point at the subdirectory for your hardware. Beispiel:For example:

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")

  5. Führen Sie cmake aus.Run CMake. Legen Sie den endgültigen Parameter auf den Pfadnamen des Verzeichnisses fest, das die Quelldateien für die Beispielanwendung „HelloWorld_HighLevelApp“ auf Ihrem lokalen Computer enthält.Set the final parameter to the pathname of the directory that contains the source files for the HelloWorld_HighLevelApp sample application on your local machine.

     cmake ^
     -G "Ninja" ^
     -DCMAKE_TOOLCHAIN_FILE="C:\Program Files (x86)\Microsoft Azure Sphere SDK\CMakeFiles\AzureSphereToolchain.cmake" ^
     -DAZURE_SPHERE_TARGET_API_SET="latest-lts" ^
     -DCMAKE_BUILD_TYPE="Debug" ^
     <path to cloned samples repo>\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp
    
  6. Führen Sie Ninja aus, um die Anwendung und die Imagepaketdatei zu erstellen.Run ninja to build the application and create the image package file.

    ninja

Ausführen des BeispielsRun the sample

  1. Wenn auf Ihrem Gerät bereits eine Anwendung ausgeführt wird, löschen Sie die Anwendung:If your device is already running an application, delete the application:

    azsphere device sideload delete

  2. Wechseln Sie in das Verzeichnis, das die zuvor erstellten Build- und „.imagepackage“-Dateien enthält.Change to the directory that contains the build and .imagepackage files created previously.

  3. Laden Sie das Abbild Paket auf Ihrem Gerät, indem Sie den Befehl azsphere Device querladen bereitstellen mit der Option--imagepackage ausführen.Load the image package onto your device by running the azsphere device sideload deploy command with the --imagepackage option. Beispiel:For example:

    azsphere device sideload deploy --imagepackage HelloWorld_HighLevelApp.imagepackage

    Dieser Befehl lädt das Abbild Paket und startet die Anwendung.This command loads the image package and starts the application. Eine blinkende LED sollte angezeigt werden.You should see an LED blink.

Tipp

Notieren Sie den Pfad des Abbild Pakets.Note the path of the image package. Sie verwenden das Imagepaket später im Schnellstart für die Bereitstellung.You'll use the image package later in the Deployment Quickstart.

Debuggen des BeispielsDebug the sample

  1. Wechseln Sie in das Verzeichnis, das die zuvor erstellten Build- und „.imagepackage“-Dateien enthält.Change to the directory that contains the build and .imagepackage files created previously.

  2. Wenn Sie die Komponenten-ID noch nicht haben, können Sie Sie erhalten:Get the component ID if you don't already have it:

    azsphere image-package show -f HelloWorld_HighLevelApp.imagepackage

  3. Wenn die Anwendung ausgeführt wird, beenden Sie sie, und starten Sie sie dann mit der Option „--debug“ neu:If the application is running, stop it and then restart it with the --debug option:

    azsphere device app stop --componentid <ComponentId>

    azsphere device app start --debug --componentid <ComponentId>

    Folgendes sollte angezeigt werden:You should see:

    <ComponentId>
    App state   : debugging
    GDB port    : 2345
    Output port : 2342
    Core        : High-level
    
    Command completed successfully in 00:00:00.9121174.
    
  4. Verwenden Sie einen beliebigen Terminalclient, um den Ausgabestream aus dem Prozess auszulesen.Use any terminal client to read the output stream from the process. Geben Sie 192.168.35.2 als IP-Adresse und 2342 als Port an.Specify 192.168.35.2 as the IP address and 2342 as the port.

  5. Öffnen Sie eine weitere Azure Sphere Developer-Eingabeaufforderung Fenster (Windows) oder Terminalfenster (Linux).Open another Azure Sphere Developer Command Prompt window (Windows) or terminal window (Linux). Starten Sie den gdb -Befehlszeilen Debugger, und übergeben Sie die. out-App-Binärdatei aus dem Build als Parameter.Start the gdb command-line debugger and pass the .out app binary from your build as a parameter. Auf diese Weise wird das vollständige Debuggen des Quellcodes ermöglicht.This will enable full source code debugging.

     arm-poky-linux-musleabi-gdb HelloWorld_HighLevelApp.out
    
  6. Legen Sie das remotedebuggingziel auf IP-Adresse 192.168.35.2 an Port 2345:Set the remote debugging target to IP address 192.168.35.2 on port 2345:

    target remote 192.168.35.2:2345

  7. Geben Sie alle anderen gdb-Befehle aus, die Sie auswählen.Issue whatever other gdb commands you choose. Mit den folgenden Befehlen wird z. b. ein Haltepunkt beim Eintrag Main () festgelegt, und anschließend wird die Ausführung nach dem Breakpoint fortgesetzt.For example, the following commands set a breakpoint upon entry to main() and then continue execution after the breakpoint, respectively.

    break main

    c

    Weitere Informationen zum Debuggen mit gdb finden Sie unter GDB: The GNU Project Debugger (GDB: Der GNU-Projektdebugger) oder in einer der anderen zahlreichen Quellen zum Thema.For more information about debugging with gdb, see GDB: The GNU Project Debugger or one of the other numerous sources on the subject.

Nächste SchritteNext steps

Sie haben eine Anwendung auf hoher Ebene erstellt, die auf Ihrem Azure Sphere Gerät ausgeführt werden soll.You've built a high-level application to run on your Azure Sphere device. Als Nächstes erfahren Sie, wie Sie die Anwendung aus der Cloud bereitstellen.Next, learn how to deploy it from the cloud.