aboutsummaryrefslogtreecommitdiff
path: root/tests/stm32
diff options
context:
space:
mode:
authorOliver <[email protected]>2025-02-04 12:15:22 +1100
committerDario Nieuwenhuis <[email protected]>2025-04-18 14:21:29 +0200
commiteb83d049c7fe1919b435878012de5da886e9fc62 (patch)
tree0d26acf1b4432b5fcf20039516b8259b6cb7c980 /tests/stm32
parent7a620661da85c0a4b550abbde7df7e248fe0f155 (diff)
stm32/sdmmc: add support for multiple block reads and writes.
Diffstat (limited to 'tests/stm32')
-rw-r--r--tests/stm32/src/bin/sdmmc.rs20
1 files changed, 18 insertions, 2 deletions
diff --git a/tests/stm32/src/bin/sdmmc.rs b/tests/stm32/src/bin/sdmmc.rs
index c1ed45588..34a53a725 100644
--- a/tests/stm32/src/bin/sdmmc.rs
+++ b/tests/stm32/src/bin/sdmmc.rs
@@ -34,8 +34,10 @@ async fn main(_spawner: Spawner) {
34 pattern1[i] = i as u8; 34 pattern1[i] = i as u8;
35 pattern2[i] = !i as u8; 35 pattern2[i] = !i as u8;
36 } 36 }
37 let patterns = [pattern1.clone(), pattern2.clone()];
37 38
38 let mut block = DataBlock([0u8; 512]); 39 let mut block = DataBlock([0u8; 512]);
40 let mut blocks = [DataBlock([0u8; 512]), DataBlock([0u8; 512])];
39 41
40 // ======== Try 4bit. ============== 42 // ======== Try 4bit. ==============
41 info!("initializing in 4-bit mode..."); 43 info!("initializing in 4-bit mode...");
@@ -84,6 +86,13 @@ async fn main(_spawner: Spawner) {
84 s.read_block(block_idx, &mut block).await.unwrap(); 86 s.read_block(block_idx, &mut block).await.unwrap();
85 assert_eq!(block, pattern2); 87 assert_eq!(block, pattern2);
86 88
89 info!("writing blocks [pattern1, pattern2]...");
90 s.write_blocks(block_idx, &patterns).await.unwrap();
91
92 info!("reading blocks...");
93 s.read_blocks(block_idx, &mut blocks).await.unwrap();
94 assert_eq!(&blocks, &patterns);
95
87 drop(s); 96 drop(s);
88 97
89 // ======== Try 1bit. ============== 98 // ======== Try 1bit. ==============
@@ -116,9 +125,9 @@ async fn main(_spawner: Spawner) {
116 info!("Card: {:#?}", Debug2Format(card)); 125 info!("Card: {:#?}", Debug2Format(card));
117 info!("Clock: {}", s.clock()); 126 info!("Clock: {}", s.clock());
118 127
119 info!("reading pattern2 written in 4bit mode..."); 128 info!("reading pattern1 written in 4bit mode...");
120 s.read_block(block_idx, &mut block).await.unwrap(); 129 s.read_block(block_idx, &mut block).await.unwrap();
121 assert_eq!(block, pattern2); 130 assert_eq!(block, pattern1);
122 131
123 info!("writing pattern1..."); 132 info!("writing pattern1...");
124 s.write_block(block_idx, &pattern1).await.unwrap(); 133 s.write_block(block_idx, &pattern1).await.unwrap();
@@ -134,6 +143,13 @@ async fn main(_spawner: Spawner) {
134 s.read_block(block_idx, &mut block).await.unwrap(); 143 s.read_block(block_idx, &mut block).await.unwrap();
135 assert_eq!(block, pattern2); 144 assert_eq!(block, pattern2);
136 145
146 info!("writing blocks [pattern1, pattern2]...");
147 s.write_blocks(block_idx, &patterns).await.unwrap();
148
149 info!("reading blocks...");
150 s.read_blocks(block_idx, &mut blocks).await.unwrap();
151 assert_eq!(&blocks, &patterns);
152
137 drop(s); 153 drop(s);
138 154
139 info!("Test OK"); 155 info!("Test OK");