code: def _sector_and_sz_itr(self, elf, data_start):
          
          for entry_start in itertools.count(data_start, self.FLASH_SECTORS_STRUCT_SIZE):
              data = elf.read(entry_start, self.FLASH_SECTORS_STRUCT_SIZE)
              size, start = struct.unpack(self.FLASH_SECTORS_STRUCT, data)
              start_and_size = start, size
              if start_and_size == (self.SECTOR_END, self.SECTOR_END):
                  return
              yield start_and_size
docs: Iterator which returns starting address and sector size