prettyprint

顯示具有 ESP32 標籤的文章。 顯示所有文章
顯示具有 ESP32 標籤的文章。 顯示所有文章

2022年2月7日 星期一

EPS32 ESP-IDF開發環境儲存設備與檔案系統實驗(一) -- SDMMC 與SDSPI (A Study on ESP32 Storage Devices and File System--SDMMC and SDSPI using ESP-IDF)

    ESP32 MCU常用的儲存設備為SD(SDMMC & SDSPI) 或SPI Flash,本篇實驗記錄主樣針對SD ,而上層檔案系統使用FatFs,實驗使用ESP32-CAM開發版,因為本開發版已含有SD Card模組。有關SPI Flash探討將於下篇記錄中說明。

一、FatFS

    FatFs是一個為小型系統發展的FAT/exFAT檔案系統,軟體系統架構如下圖所示,

(本圖片取自FatFs官網,http://elm-chan.org/fsw/ff/00index_e.html)

MCU的Application使用統一的FatFs Module,透過中間層使用不同device提供的Low Level device controls去存取各自的devices(例如SD, Flash, RTC等)。

    FatFs Module 與 device controls是完全獨立的,每個設備提供自己的device controls,FatFs與storage device controls則透過Media Access Interface(MAI)中間層去銜接。如下同所示。

(本圖片取自FatFs官網,http://elm-chan.org/fsw/ff/00index_e.html)

FatFs MAI使用下列五個API銜接FatFs Module與Storage device controls:
  1. disk_status - 取得device status。
  2. disk_initialize - 初始化 device
  3. disk_read - Read data
  4. disk_write - Write data
  5. disk_ioctl - Control device dependent functions