Sdílet prostřednictvím


Verze modulu runtime aplikace, sysroots a beta rozhraní API

Verze sady Azure Sphere SDK může obsahovat rozhraní API pro produkční prostředí i beta rozhraní API. Rozhraní API pro produkční prostředí se považují za dlouhodobě stabilní (LTS), zatímco rozhraní API beta verze jsou stále ve vývoji a můžou se změnit nebo být z pozdější verze odebrána. Ve většině případů jsou nová rozhraní API ve své první verzi označená jako beta a v další verzi se přesunou do produkčního prostředí. Beta rozhraní API poskytují dřívější přístup k novým funkcím a umožňují vytváření prototypů a zpětnou vazbu před jejich dokončením. Aplikace, které používají beta rozhraní API, budou obecně vyžadovat úpravy po budoucích verzích operačního systému Azure a sady SDK, aby fungovaly správně.

Funkce beta verze jsou v dokumentaci označené jako funkce BETA . Každá aplikace Azure Sphere vysoké úrovně určuje, jestli cílí jenom na produkční rozhraní API, nebo na produkční i beta rozhraní API.

Cílové sady rozhraní API, ARV a kořeny systému

Sada cílových rozhraní API označuje, která rozhraní API aplikace používá: buď pouze produkční rozhraní API, nebo produkční a beta rozhraní API. Cílová hodnota sady rozhraní API je celé číslo, které představuje verzi modulu runtime aplikace (ARV), nebo ARV plus řetězec, který identifikuje verzi beta rozhraní API. Samotná číselná hodnota určuje pouze produkční rozhraní API v ARV, zatímco hodnota+BetaNumber určuje produkční a beta rozhraní API v konkrétní verzi. Například ARV 8 označuje verzi 21.01 a "8+Beta2101" určuje produkční a beta rozhraní API ve verzi 20.01. V budoucích verzích se přidají další ARV.

Sada Azure Sphere SDK implementuje několik sad rozhraní API pomocí sysroots. Sysroot určuje knihovny, soubory hlaviček a nástroje, které se používají ke kompilaci a propojení aplikace, která cílí na konkrétní sadu rozhraní API. Sysroots se instalují v adresáři sady Microsoft Azure Sphere SDK v podsložce sysroots.

Nastavení nebo aktualizace cílové sady rozhraní API pro aplikaci vysoké úrovně

Pokud aplikaci založíte na ukázce Azure Sphere, nastaví se ve výchozím nastavení jako cílová sada rozhraní API, kterou ukázka používá. Pokud ukázka používá pouze produkční rozhraní API, cílová sada rozhraní API se nastaví na aktuální hodnotu ARV. Pokud ukázka pro aktuální verzi používá rozhraní API pro produkční i beta verzi, cílová sada rozhraní API bude "value+BetaNumber", aby zahrnovala rozhraní API beta verze.

Pokud svou aplikaci nezaložíte na ukázce, budete muset nastavit cílovou sadu rozhraní API v pokynech k sestavení aplikace.

Pokud jste už aplikaci vytvořili, možná budete muset změnit cílovou sadu rozhraní API, pokud aplikaci znovu sestavíte pro novou verzi operačního systému. Pokud aplikace používá rozhraní API beta verze, měli byste ji aktualizovat, když se změní možnosti sady cílových rozhraní API, což se obvykle děje při každém vydání funkce. Beta rozhraní API se můžou přesunout přímo ze stavu Beta do produkčního prostředí, což vede k novému ARV, nebo se můžou změnit a zůstat v beta verzi. Pokud aplikaci, která používá beta rozhraní API, aktualizujete tak, aby cílila na novější cílovou sadu rozhraní API, může docházet k chybám nebo upozorněním týkajícím se odebraných nebo vyřazených rozhraní API.

Kdykoli změníte cílovou sadu rozhraní API, musíte před sestavením aplikace odstranit soubor CMakeCache.txt. Tento soubor je uložený v adresáři out\ARM-Debug nebo out\ARM-Release pro váš projekt.

Určení cílové sady rozhraní API

Nastavení cílového rozhraní API v CMakePresets.json:

  • Ke konfiguraci cílové sady rozhraní API použijte AZURE_SPHERE_TARGET_API_SET. Příklad:

    "AZURE_SPHERE_TARGET_API_SET": "5" Nebo "AZURE_SPHERE_TARGET_API_SET": "5+Beta2004"

Pokud vaše aplikace cílí na nejnovější sadu rozhraní API, můžete tuto proměnnou jednoduše nastavit na "latest-lts", pokud ještě není. Pokud vaše aplikace cílí na nejnovější sadu beta rozhraní API, můžete tuto proměnnou jednoduše nastavit na "latest-beta", pokud ještě není. Pokud ale vaše aplikace cílí na starší sadu rozhraní API, musíte tuto proměnnou nastavit tak, aby odpovídala konkrétní hodnotě, kterou používá.

  • Pokud chcete zadat externí AZURE_SPHERE_TARGET_API_SET proměnnou v projektu sady Visual Studio, nastavte v souboru CMakeSettings.json v konfiguraci ARM-Debug i ARM-Release následující:

    "variables": [
      {
        "name": "AZURE_SPHERE_TARGET_API_SET",
        "value": "latest-beta"
      }
    ]
    
  • Pokud chcete zadat externí AZURE_SPHERE_TARGET_API_SET proměnnou v projektu editoru Visual Studio Code, nastavte v souboru .vscode/settings.json následující:

        "cmake.configureSettings": {
          "AZURE_SPHERE_TARGET_API_SET": "latest-lts"
      },
    
  • Pokud chcete zadat externí AZURE_SPHERE_TARGET_API_SET proměnnou na příkazovém řádku, při vyvolání CMake zahrňte parametr :

    -DAZURE_SPHERE_TARGET_API_SET="latest-lts"

    Nahraďte "latest-lts" "latest-beta" nebo konkrétní starší hodnotou, například "4" nebo "5+Beta2004", jak je vysvětleno dříve.

Cílové sady rozhraní API a kompatibilita operačního systému

Kompatibilita aplikace s operačním systémem Azure Sphere závisí na cílovém rozhraní API, se kterým byla aplikace sestavena, a na nejnovější verzi ARV, kterou tato verze operačního systému podporuje. Aplikace nebo operační systém nižší úrovně používá starší ARV (s nižším číslem) a aplikace nebo operační systém vyšší úrovně používá novější ARV (s vyšším číslem). Následující části popisují, co očekávat v jednotlivých možných scénářích.

Aplikace nižší úrovně s operačním systémem na nejvyšší úrovni

Stávající image nižší úrovně, které používají pouze produkční rozhraní API, se podporují ve verzích operačního systému Azure Sphere na nejvyšší úrovni. Například aplikace vytvořená s využitím cílové sady rozhraní API Set 1 úspěšně běží v operačním systému Azure Sphere, který podporuje ARV 2. Vaše stávající nasazené aplikace tak budou i po aktualizacích cloudového operačního systému fungovat správně. Image pouze pro produkční prostředí můžete do operačního systému na nejvyšší úrovni bez chyb načíst bokem nebo nasadit do cloudu.

Image nižší úrovně, které používají rozhraní API beta verze, nejsou podporované a nemusí záměrně fungovat v novějších verzích operačního systému Azure Sphere. Například aplikace, která byla vytvořena s využitím cílové sady rozhraní API 1+Beta1902, se nemusí podařit spustit v operačním systému Azure Sphere, který má ARV 2. Pokusy o zkušební načtení takové image vrátí chybu, pokud v příkazu az sphere device sideload deploy nepoužijete --force příznak . Podobně příkaz az sphere image add vyžaduje k nahrání takového obrázku --force příznak. Žádné aktuální kontroly následně nebrání nasazení dříve nahrané image nižší úrovně, která používá rozhraní API beta verze, společně s operačním systémem na nejvyšší úrovni, který už tato rozhraní API beta verze nepodporuje.

Aplikace na nejvyšší úrovni s operačním systémem nižší úrovně

Aplikace na nejvyšší úrovni se nedají nasadit do nižších verzí operačního systému Azure Sphere bez ohledu na to, jestli používají beta rozhraní API. Pokusy o zkušební načtení takové image selžou s chybou. Pokusy o nasazení vzduchem nejsou v současné době možné, protože sada SDK a operační systém na vysoké úrovni se vydávají současně.