
9.6.2018
SD karta se dá využít v mnoha projektech jako úložiště dat s celkem velikou kapacitou. Budu se zabývat způsoby, ve kterých použiju znalosti problematiky okolo SD karty, které jsme si ukázali. To znamená, že nebudu uvažovat možnost využití nějakého "hotového" řešení v podobě softwarové knihovny nebo celého zařízení.
Uvažujme o nějakém jednoduchém projektu typu záznamu dat z nějakého senzoru - například teplotního čidla DS18B20. Tento senzor poskytuje informaci o teplotě ve dvou bytech, které budu chtít na kartu ukládat. Jak komplikovanou softwarovou část v takovém případě budu k ovládání karty potřebovat, záleží na tom, jestli budu požadovat, aby z karty mohlo číst i jiné zařízení. Tedy, jestli když kartu vložím např. do počítače, tak bude umožněno nashromážděná data překopírovat třeba na pevný disk. Neboli ještě jinak, data budou na kartě ukládána do nějakého standardního souborového systému - např. FAT32. Druhou možností je, že karta bude umístěna pouze v mém zařízení a data budou do PC nebo jinam přenášena v případě potřeby například prostřednictvím USB. Podíváme se nejprve na druhou možnost.
Jestliže nepožaduju, aby jiné zařízení bylo schopné interpretovat formát uložených dat, potom záleží zcela na mém uvážení, jakým způsobem budu data na kartu ukládat.
Předpokládejme, že zařízení bude neustále ukládat data v pravidelných intervalech do té doby, než mu dojde volná paměť, načež data přenesu přes nějaké rozhraní do PC. V takovém případě můžu ukládání řešit tímto způsobem:
V tomto případě uvažuju podobný cyklus práce s daty jako v předešlém případě s drobným rozdílem. Zařízení zapisuje data, než mu dojde volná paměť, a v tom okamžiku kartu přenesu do PC a data jednoduše překopíruju. Jedna z otázek je, jak chci ukládaná data strukturovat. Budu vytvářet adresáře? Jak velké soubory budu používat? Vzhledem k tomu, že ve FAT32 není velikost kořenového adresáře omezená, můžu ukládat soubory přímo do něho. Určím si, jak velké soubory budu používat - to zejména s ohledem na to, aby bylo efektivně využito místo na kartě. To znamená, aby velikost souboru byla celým násobkem velikosti clusteru. Pokud toto budu mít rozmyšlené, budu předem vědět, jak velký bude kořenový adresář po zaplnění veškerého volného místa. Jelikož na kartu bude zapisovat pouze mé zařízení, můžu si práci se souborovým systémem zjednodušit: