Použití úložiště v Azure Sphere
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.
Toto téma popisuje, jak používat úložiště na zařízení Azure Sphere. Azure Sphere poskytuje dva typy úložiště, úložiště flash jen pro čtení a proměnlivé úložiště.
Úložiště jen pro čtení se používá k ukládání balíčků imagí aplikace na zařízení, aby se obsah nedá upravovat bez aktualizace aplikace. To může zahrnovat všechna data, jako jsou prostředky uživatelského rozhraní, statická konfigurační data, binární prostředky včetně imagí firmwaru použitých k aktualizaci externích MCU nebo inicializačních dat pro proměnlivé úložiště. Paměť dostupná pro aplikace poskytuje další podrobnosti o množství dostupného úložiště.
Proměnlivé úložiště ukládá data, která se zachovají při restartování zařízení. Pokud například chcete spravovat systémový čas pomocí místního časového pásma, můžete nastavení časového pásma uložit do proměnlivého úložiště. Mezi další příklady patří nastavení, která může uživatel upravit nebo stáhnout konfigurační data. Ukázka proměnlivého úložiště ukazuje, jak používat proměnlivé úložiště v aplikaci.
Poznámka:
Opakovaná aktualizace blesku ho nakonec opotřebuje a zneplatní. Proto byste měli navrhnout kód tak, aby se zabránilo zbytečným aktualizacím blesku. Pokud například chcete před ukončením uložit stav aplikace, abyste mohli po restartování obnovit uložený stav, zvažte uložení stavu aplikace na flash pouze v případě, že se stav změnil.
Použití úložiště jen pro čtení
Tyto funkce Applibs můžete použít ke správě úložiště jen pro čtení. Příklad, který používá tyto funkce, naleznete v tématu Připojení k webovým službám pomocí curl.
Požadavky na úložiště jen pro čtení
Aplikace, které používají úložiště jen pro čtení, musí obsahovat příslušné soubory hlaviček.
Do projektu zahrňte hlavičky úložiště a neschycené hlavičky:
#include <unistd.h>
#include <applibs/storage.h>
Přidání souboru do balíčku obrázku
Pokud chcete přidat soubor do úložiště jen pro čtení na zařízení Azure Sphere, můžete ho přidat do projektu jako prostředek a zahrnout ho do balíčku imagí aplikace. Pomocí těchto funkcí v CMakeLists.txt přidejte soubor jako prostředek:
Pomocí azsphere_target_add_image_package určete soubor balíčku image a všechny soubory prostředků, které se mají zahrnout při sestavování. Příklad:
azsphere_target_add_image_package(${PROJECT_NAME} RESOURCE_FILES "file1.dat" "file2.dat")
Soubory "file1.dat" a "file2.dat" by se teď měly objevit v balíčku image. Další informace o těchto funkcích najdete v tématu Použití funkcí CMake.
Poznámka:
Pro RESOURCE_FILES nejsou podporovány absolutní cesty.
Použití proměnlivého úložiště
Když nakonfigurujete proměnlivé úložiště pro vaši aplikaci, přiřadí se k ID komponenty aplikace a nemůže k němu přistupovat aplikace, která má jiné ID komponenty. Pokud se ZMĚNÍ ID komponenty aplikace, nová aplikace nebude mít přístup k proměnlivému úložišti předchozí aplikace.
Pokud odstraníte aplikaci ze zařízení, odstraní se také proměnlivé úložiště přiřazené aplikaci. Pokud se stejná aplikace načte zpět do zařízení, bude proměnlivé úložiště prázdné. Pokud ale aplikaci aktualizujete bez odstranění, zachová se proměnlivý obsah úložiště.
Příkaz azsphere device show-quota zobrazí množství proměnlivého úložiště, které se právě používá.
Operační systém Azure Sphere má zavedené mechanismy ochrany proti ztrátě výkonu, aby se zabránilo poškození kritického stavu konfigurace a metadat systému souborů. Proměnlivé rozhraní API úložiště z těchto funkcí přináší výhody. Skutečný obsah proměnlivého úložiště však závisí na tom, zda a v jakém pořadí se vyrovnávací paměti vyprázdní, takže neexistuje žádná záruka, že všechny čekající změny v době ztráty napájení se projeví v samotném souboru po obnovení.
Ke správě proměnlivých dat úložiště můžete použít tyto funkce Applibs:
Proměnlivé požadavky na úložiště
Aplikace, které používají proměnlivé úložiště, musí obsahovat příslušné soubory hlaviček a přidat do manifestu aplikace proměnlivé nastavení úložiště.
Soubory hlaviček pro proměnlivé úložiště
Do projektu zahrňte hlavičky úložiště a neschycené hlavičky:
#include <unistd.h>
#include <applibs/storage.h>
Manifest aplikace
Pokud chcete použít rozhraní API v tomto tématu, musíte do manifestu aplikace přidat MutableStorage
funkci a pak nastavit SizeKB
pole. Pole SizeKB je celé číslo, které určuje velikost proměnlivého úložiště v kibibajtůch. Maximální hodnota je 64 a úložiště je přiděleno podle velikosti bloku vymazání zařízení. Přidělení se provádí zaokrouhlením hodnoty SizeKB na další velikost bloku, pokud hodnota není celý násobek velikosti bloku zařízení.
Poznámka:
MT3620 má gumovou velikost bloku 8 kB, takže všechny hodnoty, které nejsou násobky 8, budou zaokrouhleny nahoru. Pokud například zadáte 12 kB ve funkci MutableStorage, obdržíte 16 kB v MT3620.
V následujícím příkladu se funkce úložiště MutableStorage přidá do manifestu aplikace s velikostí 8 kB.
{
"SchemaVersion": 1,
"Name" : "Mt3620App_Mutable_Storage",
"ComponentId" : "9f4fee77-0c2c-4433-827b-e778024a04c3",
"EntryPoint": "/bin/app",
"CmdArgs": [],
"Capabilities": {
"AllowedConnections": [],
"AllowedTcpServerPorts": [],
"AllowedUdpServerPorts": [],
"MutableStorage": { "SizeKB": 8 },
"Gpio": [],
"Uart": [],
"WifiConfig": false,
"NetworkConfig": false,
"SystemTime": false
}
}
Zápis trvalých dat
Pokud chcete zapisovat data do trvalého úložiště, začněte voláním funkce Applibs Storage_OpenMutableFile načtení popisovače souboru pro trvalý datový soubor. Potom zavolejte funkci, write
která zapíše data do trvalého datového souboru. Pokud množství dat, která se pokusíte zapsat, překročí přidělení proměnlivého úložiště, může být funkce zápisu úspěšná; Jediným zápisem dat však bude část, která nepřekračuje přidělení úložiště. Abyste měli jistotu, že se všechna data zapíšou, musíte zkontrolovat vrácenou hodnotu write
volání funkce.
Čtení trvalých dat
Pokud chcete číst data z volání trvalého úložiště Storage_OpenMutableFile načíst popisovač souboru pro trvalý datový soubor a potom zavolejte read
funkci, která bude číst data.
Odstranění trvalých dat
Odstranění dat z trvalého volání úložiště Storage_DeleteMutableFile