diff --git a/components/nvs_flash/src/nvs_page.cpp b/components/nvs_flash/src/nvs_page.cpp index 80ccb1f6d..a24c7214b 100644 --- a/components/nvs_flash/src/nvs_page.cpp +++ b/components/nvs_flash/src/nvs_page.cpp @@ -811,10 +811,37 @@ void Page::invalidateCache() { mFindInfo = CachedFindInfo(); } + +const char* Page::pageStateToName(PageState ps) +{ + switch (ps) { + case PageState::CORRUPT: + return "CORRUPT"; + + case PageState::ACTIVE: + return "ACTIVE"; + + case PageState::FREEING: + return "FREEING"; + + case PageState::FULL: + return "FULL"; + + case PageState::INVALID: + return "INVALID"; + + case PageState::UNINITIALIZED: + return "UNINITIALIZED"; + + default: + assert(0 && "invalid state value"); + return ""; + } +} void Page::debugDump() const { - printf("state=%x addr=%x seq=%d\nfirstUsed=%d nextFree=%d used=%d erased=%d\n", (int) mState, mBaseAddress, mSeqNumber, static_cast(mFirstUsedEntry), static_cast(mNextFreeEntry), mUsedEntryCount, mErasedEntryCount); + printf("state=%x (%s) addr=%x seq=%d\nfirstUsed=%d nextFree=%d used=%d erased=%d\n", (uint32_t) mState, pageStateToName(mState), mBaseAddress, mSeqNumber, static_cast(mFirstUsedEntry), static_cast(mNextFreeEntry), mUsedEntryCount, mErasedEntryCount); size_t skip = 0; for (size_t i = 0; i < ENTRY_COUNT; ++i) { printf("%3d: ", static_cast(i)); diff --git a/components/nvs_flash/src/nvs_page.hpp b/components/nvs_flash/src/nvs_page.hpp index c1f430cae..66b6e847c 100644 --- a/components/nvs_flash/src/nvs_page.hpp +++ b/components/nvs_flash/src/nvs_page.hpp @@ -220,6 +220,8 @@ protected: assert(entry < ENTRY_COUNT); return mBaseAddress + ENTRY_DATA_OFFSET + static_cast(entry) * ENTRY_SIZE; } + + static const char* pageStateToName(PageState ps); protected: