aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDion Dokter <[email protected]>2024-10-29 17:26:35 +0100
committerDion Dokter <[email protected]>2024-10-29 17:26:35 +0100
commit2d899a17e727a9b68ce01090b412c8211f055293 (patch)
treefb163322167ae02739b32311b8a06798666b01bd
parent5db6b4874def68a5cd1fe25e75327cf0abdbaa59 (diff)
Add some sanity checks
-rw-r--r--embassy-stm32/src/qspi/mod.rs12
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);