]> granicus.if.org Git - esp-idf/commitdiff
nvs_util: Set previous page state to full before creating new page
authorShivani Tipnis <shivani@espressif.com>
Sun, 23 Jun 2019 20:01:18 +0000 (01:31 +0530)
committerbot <bot@espressif.com>
Mon, 24 Jun 2019 13:53:51 +0000 (13:53 +0000)
components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py

index 64563869df712449a8c817f3c611b93f00f81b39..e2cefa4d9760dcc4636dc0ba969ec7e1a81ccfa6 100755 (executable)
@@ -299,9 +299,6 @@ class Page(object):
             chunk_count = chunk_count + 1
 
             if remaining_size or (tailroom - chunk_size) < Page.SINGLE_ENTRY_SIZE:
-                if page_header[0:4] != Page.FULL:
-                    page_state_full_seq = Page.FULL
-                    struct.pack_into('<I', page_header, 0, page_state_full_seq)
                 nvs_obj.create_new_page()
                 self = nvs_obj.cur_page
 
@@ -499,6 +496,12 @@ class NVS(object):
             self.fout.write(result)
 
     def create_new_page(self, is_rsrv_page=False):
+        # Set previous page state to FULL before creating new page
+        if self.pages:
+            curr_page_state = struct.unpack('<I', self.cur_page.page_buf[0:4])[0]
+            if curr_page_state == Page.ACTIVE:
+                page_state_full_seq = Page.FULL
+                struct.pack_into('<I', self.cur_page.page_buf, 0, page_state_full_seq)
         # Update available size as each page is created
         if self.size == 0:
             raise InsufficientSizeError("Size parameter is less than the size of data in csv.Please increase size.")