From a3548077db7404863abeb2952bc43053e81f53d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20M=C3=BAdry?= Date: Tue, 4 Feb 2025 12:45:08 +0100 Subject: [PATCH] fix: Last Active page and Empty pages are now marked properly Closes https://github.com/espressif/esp-idf/issues/15279 Closes https://github.com/espressif/esp-idf-nvs-partition-gen/issues/12 --- esp_idf_nvs_partition_gen/__init__.py | 2 +- .../nvs_partition_gen.py | 32 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/esp_idf_nvs_partition_gen/__init__.py b/esp_idf_nvs_partition_gen/__init__.py index 2fb2513..124e462 100644 --- a/esp_idf_nvs_partition_gen/__init__.py +++ b/esp_idf_nvs_partition_gen/__init__.py @@ -1 +1 @@ -__version__ = '0.1.6' +__version__ = '0.1.7' diff --git a/esp_idf_nvs_partition_gen/nvs_partition_gen.py b/esp_idf_nvs_partition_gen/nvs_partition_gen.py index cf0ff2c..cb5708e 100755 --- a/esp_idf_nvs_partition_gen/nvs_partition_gen.py +++ b/esp_idf_nvs_partition_gen/nvs_partition_gen.py @@ -201,7 +201,7 @@ def encrypt_data(self, data_input, no_of_entries, nvs_obj): return encr_data_to_write - def write_entry_to_buf(self, data, entrycount,nvs_obj): + def write_entry_to_buf(self, data, entrycount, nvs_obj): encr_data = bytearray() if nvs_obj.encrypt: @@ -496,18 +496,18 @@ def __exit__(self, exc_type, exc_value, traceback): # Create pages for remaining available size while True: try: - self.create_new_page() + self.create_new_page(is_empty_page=True) # Creating empty pages so the last used page stays Active except InsufficientSizeError: self.size = None # Creating the last reserved page - self.create_new_page(is_rsrv_page=True) + self.create_new_page(is_rsrv_page=True, is_empty_page=True) break result = self.get_binary_data() self.fout.write(result) - def create_new_page(self, version=None, is_rsrv_page=False): - # Set previous page state to FULL before creating new page - if self.pages: + def create_new_page(self, version=None, is_rsrv_page=False, is_empty_page=False): + # Set previous page state to FULL before creating new page (if not creating empty pages) + if self.pages and not is_empty_page: curr_page_state = struct.unpack('