code: def flash_block(self, addr, data, smart_flash=True, chip_erase=None, progress_cb=None, fast_verify=False):
          
          assert self.region is not None
          assert self.region.contains_range(start=addr, length=len(data))
          
          fb = FlashBuilder(self)
          fb.add_data(addr, data)
          info = fb.program(chip_erase, progress_cb, smart_flash, fast_verify)
          return info
docs: !
          @brief Flash a block of data.