summaryrefslogtreecommitdiff
path: root/src/drivers/storage.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-08 17:11:13 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-08 17:11:13 +1000
commit592f231627843bc44ebaaa4506aec26da1f56499 (patch)
tree9af597adb26c6ea7ce3f86eef5081bed977fa92f /src/drivers/storage.cpp
parent520ec6d98a761e1d96b5bea299819c096ce08ac3 (diff)
downloadtangara-fw-592f231627843bc44ebaaa4506aec26da1f56499.tar.gz
Improve sd card errors
Diffstat (limited to 'src/drivers/storage.cpp')
-rw-r--r--src/drivers/storage.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/drivers/storage.cpp b/src/drivers/storage.cpp
index db257dee..f253a79a 100644
--- a/src/drivers/storage.cpp
+++ b/src/drivers/storage.cpp
@@ -63,7 +63,7 @@ auto SdStorage::Create(IGpios* gpio) -> cpp::result<SdStorage*, Error> {
// Will return ESP_ERR_INVALID_RESPONSE if there is no card
esp_err_t err = sdmmc_card_init(host.get(), card.get());
if (err != ESP_OK) {
- ESP_LOGW(kTag, "Failed to read, err: %d", err);
+ ESP_LOGW(kTag, "Failed to read, err: %s", esp_err_to_name(err));
return cpp::fail(Error::FAILED_TO_READ);
}
@@ -74,7 +74,21 @@ auto SdStorage::Create(IGpios* gpio) -> cpp::result<SdStorage*, Error> {
// Mount right now, not on first operation.
FRESULT ferr = f_mount(fs, "", 1);
if (ferr != FR_OK) {
- ESP_LOGW(kTag, "Failed to mount, err: %d", ferr);
+ std::string err_str;
+ switch (ferr) {
+ case FR_DISK_ERR:
+ err_str = "FR_DISK_ERR";
+ break;
+ case FR_NOT_READY:
+ err_str = "FR_NOT_READY";
+ break;
+ case FR_NO_FILESYSTEM:
+ err_str = "FR_NO_FILESYSTEM";
+ break;
+ default:
+ err_str = std::to_string(ferr);
+ }
+ ESP_LOGW(kTag, "Failed to mount, err: %s", err_str.c_str());
return cpp::fail(Error::FAILED_TO_MOUNT);
}