projects
/
gps-watch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
common: Implement Storage::clear() in Mx25l.
[gps-watch.git]
/
src
/
common
/
mx25l.rs
diff --git
a/src/common/mx25l.rs
b/src/common/mx25l.rs
index a6ad39550e9cbb9d9df7b1c0236e2e7228fabb51..ea2b8c1667372fe290f8c041d27566dfc9249d58 100644
(file)
--- a/
src/common/mx25l.rs
+++ b/
src/common/mx25l.rs
@@
-39,6
+39,7
@@
enum Command {
RDSR = 0x05,
WREN = 0x06,
SE = 0x20,
RDSR = 0x05,
WREN = 0x06,
SE = 0x20,
+ CE = 0x60,
RDID = 0x9f,
}
RDID = 0x9f,
}
@@
-72,6
+73,17
@@
impl Mx25l {
})
}
})
}
+ pub fn erase_all(&self) {
+ self.write_enable();
+
+ self.with_selected(|| {
+ spi::tx8(spi::SPI0, Command::CE as u8);
+ });
+
+ while self.write_in_progress() {
+ }
+ }
+
pub fn erase_sector(&self, address: usize) -> Result<(), Error> {
if (address & (SECTOR_SIZE - 1)) != 0 {
return Err(Error::UnalignedAddress);
pub fn erase_sector(&self, address: usize) -> Result<(), Error> {
if (address & (SECTOR_SIZE - 1)) != 0 {
return Err(Error::UnalignedAddress);
@@
-179,4
+191,8
@@
impl Storage for Mx25l {
Ok(())
}
Ok(())
}
+
+ fn clear(&mut self) {
+ self.erase_all();
+ }
}
}