Samouczek: tworzenie aplikacji wysokiego poziomu
Ważne
Jest to dokumentacja usługi Azure Sphere (starsza wersja). Usługa Azure Sphere (starsza wersja) zostanie wycofana 27 września 2027 r., a użytkownicy muszą przeprowadzić migrację do usługi Azure Sphere (zintegrowanej) do tej pory. Użyj selektora wersji znajdującego się powyżej spisu treści, aby wyświetlić dokumentację usługi Azure Sphere (zintegrowaną).
Aplikacja wysokiego poziomu działa w systemie operacyjnym Usługi Azure Sphere, korzysta z bibliotek aplikacji usługi Azure Sphere i może komunikować się z Internetem i z usługami opartymi na chmurze. Zobacz Omówienie aplikacji usługi Azure Sphere, aby uzyskać podstawowe informacje o aplikacjach wysokiego poziomu.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Przygotowywanie urządzenia do programowania i debugowania
- Kompilowanie, uruchamianie i debugowanie aplikacji wysokiego poziomu
Wymagania wstępne
- Zainstaluj narzędzia CMake i Ninja dla systemu Windows lub Linux.
- Zainstaluj program Visual Studio Code dla systemu Windows lub dla systemu Linux.
- Zainstaluj narzędzia CMake i Ninja dla systemu Windows lub Linux.
- Instalowanie zestawu SDK dla systemu Windows lub dla systemu Linux
- Wybieranie dzierżawy i przejmowanie urządzenia
- Konfigurowanie sieci i aktualizowanie systemu operacyjnego urządzenia
Przygotowywanie urządzenia do programowania i debugowania
Zanim będzie można utworzyć przykładową aplikację na urządzeniu usługi Azure Sphere lub utworzyć dla niej nowe aplikacje, musisz włączyć programowanie i ładowanie bezpośrednie. Domyślnie urządzenia usługi Azure Sphere są "zablokowane"; oznacza to, że nie zezwalają na ładowanie aplikacji w ramach programowania z komputera i nie zezwalają na debugowanie aplikacji. Przygotowanie urządzenia do ładowania bezpośredniego powoduje usunięcie tego ograniczenia.
Polecenie azsphere device enable-development konfiguruje urządzenie do akceptowania aplikacji do debugowania, ładuje serwer debugowania na urządzeniu i przypisuje urządzenie do grupy urządzeń, która nie zezwala na aktualizacje aplikacji w chmurze. Podczas tworzenia i debugowania aplikacji należy pozostawić urządzenie w tej grupie, aby aktualizacje aplikacji w chmurze nie zastępowały aplikacji w trakcie programowania.
Upewnij się, że urządzenie usługi Azure Sphere jest połączone z komputerem, a komputer jest połączony z Internetem.
Otwórz interfejs wiersza polecenia przy użyciu programu PowerShell, wiersza polecenia systemu Windows lub powłoki poleceń systemu Linux.
Podaj następujące polecenie:
azsphere device enable-development
Powinny zostać wyświetlone dane wyjściowe podobne do następujących:
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.
Jeśli polecenie azsphere device enable-development zakończy się niepowodzeniem, zobacz Rozwiązywanie problemów z usługą Azure Sphere, aby uzyskać pomoc.
Kompilowanie i uruchamianie aplikacji wysokiego poziomu za pomocą programu Visual Studio Code
W tym samouczku jest używany szablon linku usługi Azure Sphere, który jest częścią rozszerzenia usługi Azure Sphere dla programu Visual Studio Code. Szablon diodę LED, aby sprawdzić, czy urządzenie i narzędzia usługi Azure Sphere są zainstalowane i skonfigurowane prawidłowo.
Uruchom program Visual Studio Code. Wybierz pozycję Wyświetl>paletę poleceń, a następnie wpisz Azure Sphere: Generuj nowy projekt.
Wybierz pozycję Blink z menu Szablony.
Następnie program Visual Studio Code wyświetla okno Eksplorator plików. Przejdź do folderu, w którym chcesz umieścić aplikację Blink. Program Visual Studio Code tworzy folder Blink w wybranej lokalizacji i generuje pliki kompilacji dla aplikacji Blink. Powinny być wyświetlane komunikaty z narzędzia CMake.
Otwórz plik CMakeLists.txt i zmień ustawienie TARGET_DIRECTORY, aby określić folder zawierający definicje używanego sprzętu. Domyślnie TARGET_DIRECTORY określa hardwareDefinitions/mt3620_rbd, który jest zgodny z zestawem deweloperów Seeed Azure Sphere MT3620:
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
Szablon zawiera kilka definicji sprzętu. Jeśli na przykład używasz tablicy deweloperów SEEED MT3620 Mini, określ zamiast tego wartość HardwareDefinitions/seeed_mt3620_mdb.
Naciśnij F5, aby skompilować i debugować projekt. Jeśli projekt nie został wcześniej skompilowany lub jeśli pliki uległy zmianie i ponowne kompilowanie jest wymagane, program Visual Studio Code skompiluje projekt przed rozpoczęciem debugowania.
Poczekaj kilka sekund, aż program Visual Studio Code utworzy aplikację, utworzy pakiet obrazu, wdroży go na tablicy i uruchom go w trybie debugowania. Aktualizacje stanu zostaną wyświetlone w okienku Dane wyjściowe po drodze.
Najpierw narzędzie CMake określa, czy aplikacja musi zostać skompilowana. Jeśli tak, fokus przenosi się do okienka danych wyjściowych, co powoduje wyświetlenie danych wyjściowych z narzędzia CMake/Kompilacja.
Następnie w okienku danych wyjściowych zostaną wyświetlone dane wyjściowe z usługi Azure Sphere podczas wdrażania pakietu obrazów na urządzeniu. Na koniec konsola debugowania odbiera fokus i wyświetla dane wyjściowe bazy danych gdb.
Napiwek
Zanotuj lokalizację pakietu obrazów, ponieważ będzie ona potrzebna podczas tworzenia wdrożenia. W oknie Dane wyjściowe powinien zostać wyświetlony komunikat, taki jak "Pliki kompilacji zapisane w <ścieżce>", gdzie <ścieżka> jest pełną ścieżką do folderu kompilacji aplikacji Blink, zazwyczaj kończąc się ciągiem "out\ARM-Debug" lub "out/ARM-Debug".
Po krótkim opóźnieniu powinien zostać wyświetlony migać dioda LED.
Ustaw punkt przerwania w elemencie main.c i przejdź przez aplikację, aby poznać funkcje debugowania programu Visual Studio Code dla usługi Azure Sphere.
Kompilowanie i uruchamianie aplikacji wysokiego poziomu za pomocą programu Visual Studio
W tym samouczku jest używany szablon Blink usługi Azure Sphere, który jest częścią rozszerzenia usługi Azure Sphere dla programu Visual Studio. Szablon diodę LED, aby sprawdzić, czy urządzenie i narzędzia usługi Azure Sphere są zainstalowane i skonfigurowane prawidłowo.
Jeśli dopiero zaczynasz korzystać z programu Visual Studio, rozważ przewodnik Szybki start lub przewodnik z przewodnikiem, aby dowiedzieć się więcej na temat nawigowania i korzystania z niego.
Otwórz program Visual Studio i wybierz pozycję Utwórz nowy projekt. W polu Wyszukaj wpisz "azure sphere", aby uzyskać listę szablonów usługi Azure Sphere. Wybierz pozycję Azure Sphere Blink z listy.
Wprowadź nazwę i lokalizację projektu, a następnie wybierz pozycję Utwórz.
Otwórz plik CMakeLists.txt i zmień ustawienie TARGET_DIRECTORY, aby określić folder zawierający definicje używanego sprzętu. Domyślnie TARGET_DIRECTORY określa hardwareDefinitions/mt3620_rbd, który jest zgodny z zestawem deweloperów Seeed Azure Sphere MT3620:
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
Szablon zawiera kilka definicji sprzętu. Jeśli na przykład używasz tablicy deweloperów SEEED MT3620 Mini, określ zamiast tego wartość HardwareDefinitions/seeed_mt3620_mdb.
W programie Visual Studio wybierz pozycję Wyświetl>dane wyjściowe, aby wyświetlić okienko Dane wyjściowe.
Upewnij się, że urządzenie jest podłączone do komputera za pomocą portu USB. W menu Ustaw element uruchamiania wybierz pozycję Aplikacja usługi Azure Sphere (HLCore), w której aplikacja usługi Azure Sphere jest nazwą bieżącej aplikacji wysokiego poziomu lub naciśnij F5.
Jeśli zostanie wyświetlony monit o skompilowanie projektu, wybierz pozycję Tak. Program Visual Studio kompiluje aplikację, tworzy pakiet obrazu, ładuje go bezpośrednio na tablicę i uruchamia ją w trybie debugowania. Ładowanie bezpośrednie oznacza, że aplikacja jest dostarczana bezpośrednio z komputera za pośrednictwem połączenia przewodowego, a nie dostarczana za pośrednictwem chmury.
Napiwek
Zanotuj lokalizację pakietu obrazów, ponieważ będzie ona potrzebna podczas tworzenia wdrożenia. Powinien zostać wyświetlony komunikat, taki jak "Plik wyjściowy znajduje się w ścieżce" <w danych wyjściowych w >: Build, gdzie ścieżka< jest pełną ścieżką do folderu kompilacji aplikacji Blink, zazwyczaj kończąc się ciągiem "out/ARM-Debug".>
Domyślnie w okienku Dane wyjściowe są wyświetlane dane wyjściowe z danych wyjściowych urządzenia. Aby wyświetlić komunikaty z debugera, wybierz pozycję Debuguj z menu rozwijanego Pokaż dane wyjściowe z: . Możesz również sprawdzić dezasemblerowanie programu, rejestry lub pamięć za pomocą menu Debugowanie>systemu Windows.
Po uruchomieniu programu powinien zostać wyświetlony migać dioda LED.
Pobieranie przykładowej aplikacji
Aplikację HelloWorld można pobrać w następujący sposób: :
- Wskaż przeglądarkę w przeglądarce Microsoft Samples Browser.
- Wpisz "Azure Sphere" w polu Wyszukiwania.
- Wybierz pozycję Azure Sphere — Hello World z wyników wyszukiwania.
- Wybierz pozycję Pobierz plik ZIP.
- Otwórz pobrany plik i wyodrębnij go do katalogu lokalnego.
Tworzenie przykładu
Aby utworzyć pliki build i imagepackage dla przykładowej aplikacji HelloWorld_HighLevelApp, wykonaj następujące kroki.
Zaktualizuj przykład, aby był przeznaczony dla sprzętu, jeśli jest to konieczne. Domyślnie przykłady są przeznaczone dla sprzętu, który jest zgodny z projektem tablicy referencyjnej MT3620 (RDB), takim jak zestaw DEVELOPMENT Kit MT3620 z Seeed Studios. Dodatkowe docelowe definicje sprzętu dla przykładowych aplikacji są dostępne w katalogu HardwareDefinitions repozytorium Przykłady usługi Azure Sphere. Na przykład pliki definicji sprzętu zestawu startowego Avnet MT3620 znajdują się w podkatalogu HardwareDefinitions/avnet_mt3620_sk.
Otwórz CMakeLists.txt i zaktualizuj parametr TARGET_DIRECTORY w funkcji azure_target_hardware_definition , aby wskazać podkatalog dla sprzętu. Na przykład:
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
Otwórz interfejs wiersza polecenia przy użyciu programu PowerShell, wiersza polecenia systemu Windows lub powłoki poleceń systemu Linux. Przejdź do katalogu kompilacji projektu.
W katalogu kompilacji projektu w wierszu polecenia uruchom narzędzie CMake z następującymi parametrami:
cmake --preset <preset-name> <source-path>
--preset <preset-name>
Wstępnie zdefiniowana w CMakePresets.json nazwa konfiguracji kompilacji.
--build <cmake-path>
Katalog binarny zawierający pamięć podręczną CMake. Jeśli na przykład uruchomisz narzędzie CMake w usłudze Azure Sphere, polecenie kompilacji będzie następujące:
cmake --build out/ARM-Debug
.<source-path>
Ścieżka katalogu zawierającego pliki źródłowe przykładowej aplikacji. W tym przykładzie repozytorium przykładów usługi Azure Sphere zostało pobrane do katalogu o nazwie AzSphere.
Parametry narzędzia CMake są oddzielone spacjami. Znak kontynuacji wiersza (^ dla wiersza polecenia systemu Windows, \ dla wiersza polecenia systemu Linux lub " dla programu PowerShell) może być używany do odczytu, ale nie jest wymagany.
W poniższych przykładach przedstawiono polecenia narzędzia CMake dla aplikacji wysokiego poziomu Hello World:
Uruchom narzędzie Ninja, aby skompilować aplikację i utworzyć plik pakietu obrazu:
ninja -C out/ARM-Debug
Ninja umieszcza wynikową aplikację i pliki imagepackage w określonym katalogu.
Możesz również wywołać ninja za pomocą narzędzia CMake za pomocą następującego polecenia:
cmake --build out/<binary-dir>
Ustaw
<binary-dir>
na katalog binarny zawierający pamięć podręczną CMake. Jeśli na przykład uruchomisz narzędzie CMake w usłudze Azure Sphere, polecenie kompilacji będzie następujące:cmake --build out/ARM-Debug
.Podczas rozwiązywania problemów, szczególnie po wprowadzeniu jakichkolwiek zmian w poleceniach narzędzia CMake usuń całą kompilację i spróbuj ponownie.
Uruchamianie aplikacji przykładowej
Jeśli na urządzeniu jest już uruchomiona aplikacja, usuń aplikację:
azsphere device sideload delete
Przejdź do katalogu zawierającego utworzone wcześniej pliki build i imagepackage.
Załaduj pakiet obrazu na urządzenie, uruchamiając polecenie azsphere device sideload deploy i określając pakiet obrazu. Na przykład:
azsphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
To polecenie ładuje pakiet obrazu i uruchamia aplikację. Powinien zostać wyświetlony migać dioda LED.
Napiwek
Zanotuj ścieżkę pakietu obrazów. Użyjesz pakietu obrazów w dalszej części przewodnika Szybki start wdrażania.
Debugowanie przykładu
Przejdź do katalogu zawierającego utworzone wcześniej pliki build i imagepackage.
Pobierz identyfikator składnika, jeśli jeszcze go nie masz:
azsphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
Jeśli aplikacja jest uruchomiona, zatrzymaj ją, a następnie uruchom ją ponownie przy użyciu
--debug-mode
opcji :azsphere device app stop --component-id <ComponentId>
azsphere device app start --debug-mode --component-id <ComponentId>
Powinien zostać wyświetlony następujący ekran:
<ComponentId> App state : debugging GDB port : 2345 Output port : 2342 Core : High-level
Użyj klienta terminalu, aby ustanowić połączenie Telnet lub nieprzetworzone połączenie TCP w celu odczytania strumienia wyjściowego z procesu. Określ wartość 192.168.35.2 jako adres IP i 2342 jako port.
Otwórz interfejs wiersza polecenia przy użyciu programu PowerShell lub standardowego wiersza polecenia w systemie Windows lub powłoki poleceń w systemie Linux, a następnie przekaż plik binarny aplikacji .out z kompilacji jako parametr. Umożliwi to pełne debugowanie kodu źródłowego.
Wiersz polecenia systemu Windows
"C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
Windows PowerShell
& "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
Uwaga
Zestaw SDK usługi Azure Sphere jest dostarczany z wieloma katalogami sysroot, dzięki czemu aplikacje mogą kierować do różnych zestawów interfejsów API zgodnie z opisem w temacie Wersja środowiska uruchomieniowego aplikacji, katalogi sysroot i interfejsy API beta. Katalogi sysroot są instalowane w folderze instalacyjnym zestawu SDK usługi Azure Sphere w obszarze Sysroots.
Ustaw docelowy zdalny debugowanie na adres IP 192.168.35.2 na porcie 2345:
target remote 192.168.35.2:2345
Uruchom dowolne inne wybrane polecenia gdb. Na przykład następujące polecenia ustawiają punkt przerwania po wpisie na main(), a następnie kontynuuj wykonywanie po punkcie przerwania, odpowiednio.
break main
c
Aby uzyskać więcej informacji na temat debugowania za pomocą bazy danych gdb, zobacz GDB: Debuger projektu GNU lub jeden z innych licznych źródeł na ten temat.
Następne kroki
Utworzono aplikację wysokiego poziomu do uruchamiania na urządzeniu usługi Azure Sphere. Teraz możesz go zmodyfikować. Definicje sprzętu opisują sposób edytowania pliku JSON definicji sprzętu i ponownego generowania skojarzonego pliku nagłówka.
Następnie dowiedz się, jak wdrożyć aplikację wysokiego poziomu z chmury.
Zobacz też
Odwiedź galerię usługi Azure Sphere, kolekcję inspirujących, niezamierzonych i wielokrotnego użytku skryptów, narzędzi i funkcji usługi Azure Sphere.