diff --git a/tockloader-lib/src/bootloader_serial.rs b/tockloader-lib/src/bootloader_serial.rs index 24ec8d0..53561aa 100644 --- a/tockloader-lib/src/bootloader_serial.rs +++ b/tockloader-lib/src/bootloader_serial.rs @@ -162,9 +162,13 @@ pub async fn ping_bootloader_and_wait_for_response( ) -> Result<(), TockloaderError> { let ping_pkt = [ESCAPE_CHAR, Command::Ping as u8]; - for _ in 0..30 { + for attempt in 0..30 { + eprintln!("attempt {}", attempt); // Debug purposes write_bytes(port, &ping_pkt, DEFAULT_TIMEOUT).await?; - let ret = read_bytes(port, 2, DEFAULT_TIMEOUT).await?; + let ret = match read_bytes(port, 2, DEFAULT_TIMEOUT).await { + Ok(buf) => buf, + Err(_) => continue, + }; if ret[1] == Response::Pong as u8 { return Ok(());