PlatformIO ile Esp32 SPIFFS "SPI Flash File Storage" Bölümü

   Daha önce Esp32 nin flash belleği üzerinde birden çok depolama alanı olduğunu ve bu depolama alanlarının program hafızası kullanımına ek olarak olarak başka amaçlar içinde kullanılabildiğinden bahsetmiştim. İlgili konuya buraya tıklayarak ulaşabilirsiniz. Bugün ki konumuz ise bu bölümlerden biri olan SPIFFS dosyalama bölümü...

 Bu bölüm içerisinde program kodumuz ile dosyalama işlemleri yapabilir, dışarından dosya yükleyip silebilir ve dosyalama ile ilgili tüm manipülasyonları gerçekleştirebiliriz. 

  Dosyalama bölümü varsayılan olarak SPIFFS dosya sistemi için biçimlendirilmiştir. Ancak LittleFS ve FAT kullanmakta mümkündür. Ancak dosya sistemleri ile çalışılmak  istenir ise bu durum için partition table bilgisini içeren csv dosyası düzenlenmelidir. 


csv dosyasında fat için düzenleme

  Farklı dosya sistemleri arasında farklı avantaj ve dezavantajlar bulunmakla beraber hepsinin kullanımı neredeyse aynı şekildedir.

Platfomio ile Esp32 ye Dosya Yükleme

 Projenizin olduğu klasör içerisinde "data" isimli bir klasör oluşturulur. Bu klasörün ismi data olmak zorundadır. Bu klasör içerisine ise yüklemek istenen dosyalar yer alır. 



  Daha sonra sol bölümdeki platformio sekmesine tıklaranarak "Project Task" menüsüne ulaşılır. Önce "Build Filesystem Image" seçeneği, sonrasında "Upload Filesystem Image" seçeneğine tıklanır. Bu aşama da esp32 modülü boot moduna getirilir. Böylece dosyalarımız esp32 ye yüklenmiş olur. Yine bu bölümde bulunan "Erase Flash" seçeneği ise program kodu dahil tüm flashı siler ancak boot loader bu durumdan etkilenmez.



SPIFFS Bölümündeki Dosyaları Görüntüleme

  Proje geliştrime sırasında gerek upload yöntemi ile gerek ise program kodu ile spiffs bölümünde oluşturulan dosyaları görüntüleme ihtiyacı ortaya çıkabilir. Bunun için program koduna haberleşme yöntemlerinden birini kullanan özel bir kod yazılabilir. Ancak herhangi bir kod yazmadan da platformio üzerinden dosyalara erişmek mümkündür. Aslında bu işlem için platformio üzerinde doğrudan bir yerleşik bir araç yada yöntem bulunmamaktadır. Bu soruna bir çözüm olarak bir Maximilian Gerhardt tarafından bir script yazılmıştır. Github üzerinden ilgili kaynak dosyalarına erişmek için buraya tıklayabilirsiniz



Kullanım için paylaşılmış olan download_fs.py adlı script proje klasörü içerisine kopyalanır ve platformio.ini dosyasına "extra_script = download_fs.py" satırı eklenerak vscode programı tekrar başlatılır. 


  Bu işlem sonunda platformio sekmesi altında bulunan project tasks bölümünde "Download Filesystem" seçemeği eklenmiş olur. Bu yeni eklenen özellik sayesinde flash  üzerindeki spiffs bölümündeki dosyalar okunarak "unpacked_fs" klasörü altına kaydedilir.


Yorum Gönder

Daha yeni Daha eski