Просмотр исходного кода

nvs: print page state as text in nvs_dump

Ivan Grokhotkov 9 лет назад
Родитель
Сommit
447ffb23d5
2 измененных файлов с 30 добавлено и 1 удалено
  1. 28 1
      components/nvs_flash/src/nvs_page.cpp
  2. 2 0
      components/nvs_flash/src/nvs_page.hpp

+ 28 - 1
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<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));

+ 2 - 0
components/nvs_flash/src/nvs_page.hpp

@@ -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: