docs: def save_flash_segment(self, f, segment, checksum=None):
          """ Save the next segment to the image file, return next checksum value if provided """
          segment_end_pos = f.tell() + len(segment.data) + self.SEG_HEADER_LEN
          segment_len_remainder = segment_end_pos % self.IROM_ALIGN
          if segment_len_remainder < 0x24:
              # Work around a bug in ESP-IDF 2nd stage bootloader, that it didn't map the
              # last MMU page, if an IROM/DROM segment was < 0x24 bytes over the page boundary.
              segment.data += b'\x00' * (0x24 - segment_len_remainder)
          return self.save_segment(f, segment, checksum)