3#if (defined ESP32 && defined ARDUINO)
5#include "soc/soc_caps.h"
7#if SOC_SDMMC_HOST_SUPPORTED
9#if !defined(MLOG_roo_io_fs)
10#define MLOG_roo_io_fs 0
15ArduinoSdMmcFs::ArduinoSdMmcFs()
19void ArduinoSdMmcFs::setPins(uint8_t pin_clk, uint8_t pin_cmd, uint8_t pin_d0) {
20 ::SD_MMC.setPins(pin_clk, pin_cmd, pin_d0);
24void ArduinoSdMmcFs::setPins(uint8_t pin_clk, uint8_t pin_cmd, uint8_t pin_d0,
25 uint8_t pin_d1, uint8_t pin_d2, uint8_t pin_d3) {
26 ::SD_MMC.setPins(pin_clk, pin_cmd, pin_d0, pin_d1, pin_d2, pin_d3);
30MountImpl::MountResult ArduinoSdMmcFs::mountImpl(
31 std::function<
void()> unmount_fn) {
32 MLOG(roo_io_fs) <<
"Mounting SD card";
33#if defined(ROO_TESTING)
34 mount_base_path_ = FakeEsp32().fs_root();
36 mount_base_path_.clear();
38 mount_base_path_.append(mountPoint());
40 ::SD_MMC.begin(mount_base_path_.c_str(), mode_1bit_,
41 formatIfMountFailed(), frequency(), maxOpenFiles());
43 return MountImpl::MountError(kGenericMountError);
45 return MountImpl::Mounted(std::unique_ptr<MountImpl>(
46 new PosixMountImpl(mount_base_path_.c_str(), readOnly(), unmount_fn)));
49void ArduinoSdMmcFs::unmountImpl() {
50 MLOG(roo_io_fs) <<
"Unmounting SD card";
52 mount_base_path_.clear();
55Filesystem::MediaPresence ArduinoSdMmcFs::checkMediaPresence() {
56 return ::SD_MMC.totalBytes() > 0 ? Filesystem::kMediaPresent
57 : Filesystem::kMediaAbsent;
60ArduinoSdMmcFs CreateArduinoSdMmcFs() {
return ArduinoSdMmcFs(); }
62ArduinoSdMmcFs SD_MMC = CreateArduinoSdMmcFs();
roo::basic_string_view< CharT, Traits > basic_string_view