Skip to content

Commit a867ca7

Browse files
Tiwalunkorken89
authored andcommitted
Handle no-ack
1 parent 913d89d commit a867ca7

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

src/dap.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,6 +1229,10 @@ impl<T> CheckResult<T> for swd::Result<T> {
12291229
*resp = 4;
12301230
None
12311231
}
1232+
Err(swd::Error::NoAck) => {
1233+
*resp = 7;
1234+
None
1235+
}
12321236
Err(_) => {
12331237
*resp = (1 << 3) | 7;
12341238
None

src/driver/bitbang.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,10 @@ where
179179
clock_only!(self); // turnaround cycle
180180
return Err(swd::Error::AckFault);
181181
}
182+
0b111 => {
183+
clock_only!(self); // turnaround cycle
184+
return Err(swd::Error::NoAck);
185+
}
182186
_ => {
183187
clock_only!(self); // turnaround cycle
184188
return Err(swd::Error::AckUnknown(ack as u8));

src/swd.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ pub enum Error {
1010
AckWait,
1111
/// A fault.
1212
AckFault,
13+
/// Not acknowledged.
14+
NoAck,
1315
/// A protocol error.
1416
AckProtocol,
1517
/// Unkown error.
@@ -62,7 +64,7 @@ pub enum Ack {
6264
Ok = 0b001,
6365
Wait = 0b010,
6466
Fault = 0b100,
65-
Protocol = 0b111,
67+
NoAck = 0b111,
6668
}
6769

6870
impl Ack {
@@ -72,7 +74,7 @@ impl Ack {
7274
v if v == (Ack::Ok as u8) => Ok(()),
7375
v if v == (Ack::Wait as u8) => Err(Error::AckWait),
7476
v if v == (Ack::Fault as u8) => Err(Error::AckFault),
75-
v if v == (Ack::Protocol as u8) => Err(Error::AckProtocol),
77+
v if v == (Ack::NoAck as u8) => Err(Error::NoAck),
7678
_ => Err(Error::AckUnknown(ack)),
7779
}
7880
}

0 commit comments

Comments
 (0)