sftool_lib/sf32lb58/
write_flash.rs

1use super::SF32LB58Tool;
2use crate::WriteFlashParams;
3use crate::common::write_flash::FlashWriter;
4use crate::write_flash::WriteFlashTrait;
5
6impl WriteFlashTrait for SF32LB58Tool {
7    fn write_flash(&mut self, params: &WriteFlashParams) -> Result<(), std::io::Error> {
8        let packet_size = if self.base.compat { 256 } else { 128 * 1024 };
9
10        if params.erase_all {
11            FlashWriter::erase_all(self, &params.files)?;
12        }
13
14        for file in params.files.iter() {
15            if !params.erase_all {
16                FlashWriter::write_file_incremental(self, file, params.verify)?;
17            } else {
18                FlashWriter::write_file_full_erase(self, file, params.verify, packet_size)?;
19            }
20        }
21        Ok(())
22    }
23}