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

NVS #2757

Closed as not planned
Closed as not planned
NVS #2757
Assignees
Labels
conclusion: off topicOff topic for this repository type: supportOT: Request for help using the project
@UltimateMaker

Description

Describe the problem

I use NVS to my project a lot and used a custom partition just for the sketch and the nvs.

factory,app,factory,0x10000,0x140000,
nvs,data,nvs,0x150000,0x2B0000,

Even tough i maxed out the nvs i still get crashes when i try to save data to nvs. the data i try to save are long strings split into chunks due to the limitation size per key but with no result. it keeps crashing when it comes to saving.

02:19:07.427 -> abort() was called at PC 0x400849b3 on core 1
02:19:07.427 -> Backtrace: 0x40082900:0x3ffc097c |<-CORRUPTED
02:19:07.427 -> ELF file SHA256: ea6e33af6 
02:19:07.427 -> E (13880) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
02:19:07.637 -> E (13888) esp_core_dump_elf: Elf write init failed!
02:19:07.637 -> E (13893) esp_core_dump_common: Core dump write failed with error=-1

Using an addon exception decoder from the 1.8 version ide did not help me as well

Decoding stack results
0x40082900: panic_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/panic.c line 469

I save many types of smaller variables to nvs but even with smalled chunks it cannot be handled

To reproduce

======================To write data======================

 const size_t chunkSize = 1900;
 int totalChunks = (DataLog.length() + chunkSize - 1) / chunkSize;
 preferences.begin("my-app", false);
 preferences.putInt("DataLog_chunks", totalChunks); // Store how many parts
 for (int i = 0; i < totalChunks; i++) {
 String chunk = DataLog.substring(i * chunkSize, (i + 1) * chunkSize);
 String key = "DataLog_" + String(i);
 preferences.putString(key.c_str(), chunk);
 }
 preferences.end();
 Serial.println("DONE");

====================To read data=============================

 preferences.begin("my-app", true); // true = read-only mode
 int totalChunks = preferences.getInt("DataLog_chunks", 0);
 if (totalChunks == 0) {
 Serial.println("No chunks found. Using default DataLog.");
 DataLog = "looooooooooooooong string..... about 1kb "; // Optional fallback
 } else {
 DataLog = ""; // Clear previous content
 for (int i = 0; i < totalChunks; i++) {
 String key = "DataLog_" + String(i);
 String chunk = preferences.getString(key.c_str(), "");
 DataLog += chunk;
 }
 }
 preferences.end();

Expected behavior

Expected to save the data with no issue. Also how to handle panic events? to be able to halt or not on crash?

Arduino IDE version

2.3.6

Operating system

Windows

Operating system version

Windows 10

Additional context

No response

Issue checklist

  • I searched for previous reports in the issue tracker
  • I verified the problem still occurs when using the latest nightly build
  • My report contains all necessary details

Metadata

Metadata

Assignees

Labels

conclusion: off topicOff topic for this repository type: supportOT: Request for help using the project

Type

No type

Projects

No projects

Milestone

No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      AltStyle によって変換されたページ (->オリジナル) /