diff options
| author | Dion Dokter <[email protected]> | 2024-10-29 17:26:35 +0100 |
|---|---|---|
| committer | Dion Dokter <[email protected]> | 2024-10-29 17:26:35 +0100 |
| commit | 2d899a17e727a9b68ce01090b412c8211f055293 (patch) | |
| tree | fb163322167ae02739b32311b8a06798666b01bd | |
| parent | 5db6b4874def68a5cd1fe25e75327cf0abdbaa59 (diff) | |
Add some sanity checks
| -rw-r--r-- | embassy-stm32/src/qspi/mod.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/embassy-stm32/src/qspi/mod.rs b/embassy-stm32/src/qspi/mod.rs index 715c260e9..6530b75b1 100644 --- a/embassy-stm32/src/qspi/mod.rs +++ b/embassy-stm32/src/qspi/mod.rs | |||
| @@ -202,6 +202,18 @@ impl<'d, T: Instance, M: PeriMode> Qspi<'d, T, M> { | |||
| 202 | } | 202 | } |
| 203 | 203 | ||
| 204 | fn setup_transaction(&mut self, fmode: QspiMode, transaction: &TransferConfig, data_len: Option<usize>) { | 204 | fn setup_transaction(&mut self, fmode: QspiMode, transaction: &TransferConfig, data_len: Option<usize>) { |
| 205 | if let (Some(_), QspiWidth::NONE) = (transaction.address, transaction.awidth) { | ||
| 206 | panic!("QSPI address can't be sent with an address width of NONE"); | ||
| 207 | } | ||
| 208 | |||
| 209 | if let (Some(_), QspiWidth::NONE) = (data_len, transaction.dwidth) { | ||
| 210 | panic!("QSPI data can't be sent with a data width of NONE"); | ||
| 211 | } | ||
| 212 | |||
| 213 | if let Some(0) = data_len { | ||
| 214 | panic!("QSPI data must be at least one byte"); | ||
| 215 | } | ||
| 216 | |||
| 205 | T::REGS.fcr().modify(|v| { | 217 | T::REGS.fcr().modify(|v| { |
| 206 | v.set_csmf(true); | 218 | v.set_csmf(true); |
| 207 | v.set_ctcf(true); | 219 | v.set_ctcf(true); |
