Code: Select all
chunk = ()
import esp32
part = esp32.Partition("nvs")
block_num = int(part.info()[2] / 4096)
try:
with open('ubinvs.bin', 'rb') as f:
log.info('opened ubinvs.bin..iterating through the file')
while True:
try:
while chunk := f.read(4096):
position = f.tell()
self.wdt.feed()
gc.collect()
log.info('block_num is {}, chunk size is {}, position is {}'.format(block_num, len(chunk), position))
try:
esp32.Partition.writeblocks(block_num, chunk)
except:
pass
block_num = block_num + 1
os.rename('ubinvs.bin','ubinvs.save')
log.info('renamed ubinvs file')
break
except Exception as e:
log.info('f.read error {}' + repr(e))
log.info('skipping block_num {}'.format(block_num))
block_num = block_num + 1
position = position + 4096
f.seek(position)
pass
except:
pass