ESP32 MCU常用的儲存設備為SD(SDMMC & SDSPI) 或SPI Flash,本篇實驗記錄主樣針對SD ,而上層檔案系統使用FatFs,實驗使用ESP32-CAM開發版,因為本開發版已含有SD Card模組。有關SPI Flash探討將於下篇記錄中說明。
一、FatFS
FatFs是一個為小型系統發展的FAT/exFAT檔案系統,軟體系統架構如下圖所示,
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)
- disk_status - 取得device status。
- disk_initialize - 初始化 device
- disk_read - Read data
- disk_write - Write data
- disk_ioctl - Control device dependent functions