Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

LittleFS Mount Failure on ESP32-C3 #6579

Closed
Assignees
P-R-O-C-H-Y
Labels
Area: Peripherals APIRelates to peripheral's APIs.Chip: ESP32-C3Issue is related to support of ESP32-C3 ChipStatus: SolvedThe issue has been resolved and requires no further action.
Milestone
@brentru

Description

@brentru

Board

ESP32-C3

Device Description

Adafruit QT Py ESP32-C3

Hardware Configuration

Nothing attached.

Version

latest master

IDE Name

Arduino IDE

Operating System

macOS

Flash frequency

80Mhz

PSRAM enabled

no

Upload speed

115200

Description

Attempts to mount a LittleFS filesystem fails on ESP32-C3...

I am using the FS read PR (#6569) as well.

LittleFS configuration settings:

[LittleFS] data   : /Users/brent/Downloads/esp32_esp8266_test_littlefs/data[LittleFS] offset : 0[LittleFS] start  : 2686976[LittleFS] size   : 1472[LittleFS] page   : 256[LittleFS] block  : 4096->/secrets.json[LittleFS] upload : /var/folders/k6/g066g1tn567fn8mj2p42x4240000gn/T/arduino_build_941002/esp32_esp8266_test_littlefs.littlefs.bin[LittleFS] address: 2686976[LittleFS] port   : /dev/cu.usbmodem1433301[LittleFS] speed  : 115200[LittleFS] mode   : dout[LittleFS] freq   : 80m

Sketch

/* Checks and writes out the files on a LittleFS filesystem on ESP8266 and ESP32 platforms   This sketch only performs READ operations on the LittleFS filesystem and should not modify the filesystem's contents.   NOTE: The LittleFS image must have already been uploaded prior to using this sketch.*/#include<Arduino.h>#include<FS.h>#include<LittleFS.h>#include<ArduinoJson.h>StaticJsonDocument<512> jsonDoc;///< JSON document// Via https://github.com/espressif/arduino-esp32/blob/master/libraries/LittleFS/examples/LITTLEFS_test/LITTLEFS_test.inovoidlistDir(fs::FS &fs,constchar * dirname,uint8_t levels){    Serial.printf("Listing directory: %s\r\n", dirname);    #ifdef ARDUINO_ARCH_ESP8266    File root = fs.open(dirname,"r");    #else    File root = fs.open(dirname);    #endifif(!root){        Serial.println("- failed to open directory");return;    }if(!root.isDirectory()){        Serial.println(" - not a directory");return;    }    File file = root.openNextFile();while(file){if(file.isDirectory()){            Serial.print("  DIR :");            Serial.println(file.name());if(levels){                #ifdef ARDUINO_ARCH_ESP8266listDir(fs, file.fullName(), levels -1);                #elselistDir(fs, file.path(), levels -1);                #endif            }        }else {            Serial.print("  FILE:");            Serial.print(file.name());            Serial.print("\tSIZE:");            Serial.println(file.size());        }        file = root.openNextFile();    }}// via https://github.com/espressif/arduino-esp32/blob/master/libraries/LittleFS/examples/LITTLEFS_test/LITTLEFS_test.inovoidreadFile(fs::FS &fs,constchar * path){    Serial.printf("Reading file: %s\r\n", path);    #ifdef ARDUINO_ARCH_ESP8266    File file = fs.open(path,"r");    #else    File file = fs.open(path);    #endifif(!file || file.isDirectory()){        Serial.println("- failed to open file for reading");return;    }    Serial.println("- read from file:");while(file.available()){        Serial.write(file.read());    }    Serial.println("");    file.close();}voidsetup() {  Serial.begin(115200);while (!Serial) {    ;// wait for serial port to connect. Needed for native USB  }// attempt to mount LittleFS filesystem  Serial.print("Mounting LittleFS filesystem...");if(!LittleFS.begin()){    Serial.println("ERROR: LittleFS Mount Failed!");return;  }  Serial.println("Mounted!");// list everything on the filesystem '/' directory where secrets is expectedlistDir(LittleFS,"/",3);// check if WipperSnapper's `secrets.json` file exists on filesystemif (!LittleFS.exists("/secrets.json")) {    Serial.println("ERROR: Unable to find secrets.json file on LittleFS filesystem!");while (1);// wait forever  }// read out the secrets.json file in plain-textreadFile(LittleFS,"/secrets.json");// Test we can open the secrets file using ArduinoJSON  File secretsFile = LittleFS.open("/secrets.json","r");if (!secretsFile) {    Serial.println("ERROR: Unable to open secrets.json file from the LittleFS filesystem!");while (1);// wait forever  }// Test we can deserialize the secrets file using ArduinoJSON  DeserializationError err =deserializeJson(jsonDoc, secretsFile);if (err) {    Serial.print("ERROR: Failed to deserialize secrets.json file with code:");    Serial.println(err.c_str());while (1);// wait forever  }// Test parsing username from secrets.json fileconstchar *io_username = jsonDoc["io_username"];// error check against default values [ArduinoJSON, 3.3.3]if (io_username ==nullptr) {    Serial.println("ERROR: Failed to parse io_username!");while(1);// wait forever  }// Get IO key from JSONconstchar *io_key = jsonDoc["io_key"];// error check against default values [ArduinoJSON, 3.3.3]if (io_key ==nullptr) {    Serial.println("ERROR: Failed to parse io_key!");while(1);// wait forever  }// Parse SSIDconstchar *network_type_wifi_native_network_ssid = jsonDoc["network_type_wifi_native"]["network_ssid"];if (network_type_wifi_native_network_ssid ==nullptr) {    Serial.println("ERROR: Failed to parse network_type_wifi_native_network_ssid!");while(1);// wait forever  }// Parse SSID passwordconstchar *network_type_wifi_native_network_password = jsonDoc["network_type_wifi_native"]["network_password"];// error check against default values [ArduinoJSON, 3.3.3]if (network_type_wifi_native_network_password ==nullptr) {    Serial.println("ERROR: Failed to parse network_type_wifi_native_network_password!");while(1);// wait forever  }  Serial.println("Parsed `secrets.json` values...");  Serial.print("\tio_username:"); Serial.println(io_username);  Serial.print("\tio_key:"); Serial.println(io_key);  Serial.print("\tWiFi SSID:"); Serial.println(network_type_wifi_native_network_ssid);  Serial.print("\tWiFi Password:"); Serial.println(network_type_wifi_native_network_password);// close the file  secretsFile.close();// clear the JSON document and release all memory from the memory pool  jsonDoc.clear();// close fs  LittleFS.end();  Serial.println("DONE!");}voidloop() {// no-op}

Debug Message

14:33:38.869 -> Mounting LittleFS filesystem..../components/esp_littlefs/src/littlefs/lfs.c:1071:error: Corrupted dir pair at {0x0, 0x1}14:33:38.869 -> E (5935) esp_littlefs: mount failed,  (-84)14:33:38.869 -> E (5936) esp_littlefs: Failed to initialize LittleFS14:33:38.869 -> [  3023][E][LittleFS.cpp:94] begin(): Mounting LittleFS failed! Error: -114:33:38.869 -> ERROR: LittleFS Mount Failed!

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

Labels

Area: Peripherals APIRelates to peripheral's APIs.Chip: ESP32-C3Issue is related to support of ESP32-C3 ChipStatus: SolvedThe issue has been resolved and requires no further action.

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions


    [8]ページ先頭

    ©2009-2025 Movatter.jp