Merge branch 'fix/update_curr_page_state_3.1' into 'release/v3.1'

nvs_util: Set previous page state to FULL before creating new page (v3.1)

See merge request idf/esp-idf!5329
This commit is contained in:
Angus Gratton 2019-07-01 14:20:46 +08:00
commit 559a9def5b

View File

@ -282,9 +282,6 @@ class Page(object):
chunk_count = chunk_count + 1 chunk_count = chunk_count + 1
if remaining_size or (tailroom - chunk_size) < Page.SINGLE_ENTRY_SIZE: 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() nvs_obj.create_new_page()
self = nvs_obj.cur_page self = nvs_obj.cur_page
@ -463,6 +460,12 @@ class NVS(object):
self.fout.write(result) self.fout.write(result)
def create_new_page(self): def create_new_page(self):
# 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)
self.page_num += 1 self.page_num += 1
new_page = Page(self.page_num) new_page = Page(self.page_num)
new_page.version = version new_page.version = version