aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf-examples/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-04-14 17:00:28 +0200
committerDario Nieuwenhuis <[email protected]>2021-04-14 17:04:40 +0200
commit5ee87cf25d5bda026644ffe50755f25ae92f20db (patch)
treeb9d91d5921d67cf60fabb47d83cb7aa5333e311d /embassy-nrf-examples/src
parentd336a4b38a3e5cef1337f39c657beab76b60640e (diff)
Remove Pin from Flash trait
Diffstat (limited to 'embassy-nrf-examples/src')
-rw-r--r--embassy-nrf-examples/src/bin/qspi.rs25
1 files changed, 7 insertions, 18 deletions
diff --git a/embassy-nrf-examples/src/bin/qspi.rs b/embassy-nrf-examples/src/bin/qspi.rs
index 27dd28d72..28cde6e51 100644
--- a/embassy-nrf-examples/src/bin/qspi.rs
+++ b/embassy-nrf-examples/src/bin/qspi.rs
@@ -14,7 +14,6 @@ use embassy::traits::flash::Flash;
14use embassy_nrf::Peripherals; 14use embassy_nrf::Peripherals;
15use embassy_nrf::{interrupt, qspi}; 15use embassy_nrf::{interrupt, qspi};
16use example_common::*; 16use example_common::*;
17use futures::pin_mut;
18 17
19const PAGE_SIZE: usize = 4096; 18const PAGE_SIZE: usize = 4096;
20 19
@@ -36,32 +35,22 @@ async fn main(spawner: Spawner) {
36 35
37 let config = qspi::Config::default(); 36 let config = qspi::Config::default();
38 let irq = interrupt::take!(QSPI); 37 let irq = interrupt::take!(QSPI);
39 let q = qspi::Qspi::new(p.QSPI, irq, sck, csn, io0, io1, io2, io3, config); 38 let mut q = qspi::Qspi::new(p.QSPI, irq, sck, csn, io0, io1, io2, io3, config);
40 pin_mut!(q);
41 39
42 let mut id = [1; 3]; 40 let mut id = [1; 3];
43 q.as_mut() 41 q.custom_instruction(0x9F, &[], &mut id).await.unwrap();
44 .custom_instruction(0x9F, &[], &mut id)
45 .await
46 .unwrap();
47 info!("id: {}", id); 42 info!("id: {}", id);
48 43
49 // Read status register 44 // Read status register
50 let mut status = [4; 1]; 45 let mut status = [4; 1];
51 q.as_mut() 46 q.custom_instruction(0x05, &[], &mut status).await.unwrap();
52 .custom_instruction(0x05, &[], &mut status)
53 .await
54 .unwrap();
55 47
56 info!("status: {:?}", status[0]); 48 info!("status: {:?}", status[0]);
57 49
58 if status[0] & 0x40 == 0 { 50 if status[0] & 0x40 == 0 {
59 status[0] |= 0x40; 51 status[0] |= 0x40;
60 52
61 q.as_mut() 53 q.custom_instruction(0x01, &status, &mut []).await.unwrap();
62 .custom_instruction(0x01, &status, &mut [])
63 .await
64 .unwrap();
65 54
66 info!("enabled quad in status"); 55 info!("enabled quad in status");
67 } 56 }
@@ -72,19 +61,19 @@ async fn main(spawner: Spawner) {
72 61
73 for i in 0..8 { 62 for i in 0..8 {
74 info!("page {:?}: erasing... ", i); 63 info!("page {:?}: erasing... ", i);
75 q.as_mut().erase(i * PAGE_SIZE).await.unwrap(); 64 q.erase(i * PAGE_SIZE).await.unwrap();
76 65
77 for j in 0..PAGE_SIZE { 66 for j in 0..PAGE_SIZE {
78 buf.0[j] = pattern((j + i * PAGE_SIZE) as u32); 67 buf.0[j] = pattern((j + i * PAGE_SIZE) as u32);
79 } 68 }
80 69
81 info!("programming..."); 70 info!("programming...");
82 q.as_mut().write(i * PAGE_SIZE, &buf.0).await.unwrap(); 71 q.write(i * PAGE_SIZE, &buf.0).await.unwrap();
83 } 72 }
84 73
85 for i in 0..8 { 74 for i in 0..8 {
86 info!("page {:?}: reading... ", i); 75 info!("page {:?}: reading... ", i);
87 q.as_mut().read(i * PAGE_SIZE, &mut buf.0).await.unwrap(); 76 q.read(i * PAGE_SIZE, &mut buf.0).await.unwrap();
88 77
89 info!("verifying..."); 78 info!("verifying...");
90 for j in 0..PAGE_SIZE { 79 for j in 0..PAGE_SIZE {