]> granicus.if.org Git - esp-idf/commitdiff
nvs: print page state as text in nvs_dump
authorIvan Grokhotkov <ivan@espressif.com>
Wed, 15 Mar 2017 08:51:52 +0000 (16:51 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Wed, 15 Mar 2017 09:28:07 +0000 (17:28 +0800)
components/nvs_flash/src/nvs_page.cpp
components/nvs_flash/src/nvs_page.hpp

index 80ccb1f6d08cc5785ffa81c05501b28df7d054ea..a24c7214bb1559da6fcd3f5302928704990c8dc3 100644 (file)
@@ -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<int>(mFirstUsedEntry), static_cast<int>(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<int>(mFirstUsedEntry), static_cast<int>(mNextFreeEntry), mUsedEntryCount, mErasedEntryCount);
     size_t skip = 0;
     for (size_t i = 0; i < ENTRY_COUNT; ++i) {
         printf("%3d: ", static_cast<int>(i));
index c1f430cae55d02d0b50f6866eb31ba7e8a5e1f45..66b6e847c8bbab75fe23c276fb6f23012411f71b 100644 (file)
@@ -220,6 +220,8 @@ protected:
         assert(entry < ENTRY_COUNT);
         return mBaseAddress + ENTRY_DATA_OFFSET + static_cast<uint32_t>(entry) * ENTRY_SIZE;
     }
+    
+    static const char* pageStateToName(PageState ps);
 
 
 protected: