aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTil Blechschmidt <[email protected]>2022-03-02 22:48:58 +0100
committerTil Blechschmidt <[email protected]>2022-03-02 22:48:58 +0100
commit993428e2d45d0183cc7d778d964f046272b9d424 (patch)
tree639b4e06a31c205beded92a1a29de3c6d976a3b4
parent3f2d9cfe0a643b1f1afcaef0fcb2cbbf305fd83d (diff)
Refactor _from_ram methods to use more readable copy operation
-rw-r--r--embassy-nrf/src/spim.rs12
-rw-r--r--embassy-nrf/src/twim.rs17
-rw-r--r--embassy-nrf/src/uarte.rs12
3 files changed, 18 insertions, 23 deletions
diff --git a/embassy-nrf/src/spim.rs b/embassy-nrf/src/spim.rs
index 3e793f393..c9c9cb25a 100644
--- a/embassy-nrf/src/spim.rs
+++ b/embassy-nrf/src/spim.rs
@@ -274,9 +274,9 @@ impl<'d, T: Instance> Spim<'d, T> {
274 Ok(_) => Ok(()), 274 Ok(_) => Ok(()),
275 Err(Error::DMABufferNotInDataMemory) => { 275 Err(Error::DMABufferNotInDataMemory) => {
276 trace!("Copying SPIM tx buffer into RAM for DMA"); 276 trace!("Copying SPIM tx buffer into RAM for DMA");
277 let mut tx_buf = [0u8; FORCE_COPY_BUFFER_SIZE]; 277 let tx_ram_buf = &mut [0; FORCE_COPY_BUFFER_SIZE][..tx.len()];
278 tx_buf[..tx.len()].copy_from_slice(tx); 278 tx_ram_buf.copy_from_slice(tx);
279 self.blocking_inner_from_ram(rx, &tx_buf[..tx.len()]) 279 self.blocking_inner_from_ram(rx, tx_ram_buf)
280 } 280 }
281 Err(error) => Err(error), 281 Err(error) => Err(error),
282 } 282 }
@@ -306,9 +306,9 @@ impl<'d, T: Instance> Spim<'d, T> {
306 Ok(_) => Ok(()), 306 Ok(_) => Ok(()),
307 Err(Error::DMABufferNotInDataMemory) => { 307 Err(Error::DMABufferNotInDataMemory) => {
308 trace!("Copying SPIM tx buffer into RAM for DMA"); 308 trace!("Copying SPIM tx buffer into RAM for DMA");
309 let mut tx_buf = [0u8; FORCE_COPY_BUFFER_SIZE]; 309 let tx_ram_buf = &mut [0; FORCE_COPY_BUFFER_SIZE][..tx.len()];
310 tx_buf[..tx.len()].copy_from_slice(tx); 310 tx_ram_buf.copy_from_slice(tx);
311 self.async_inner_from_ram(rx, &tx_buf[..tx.len()]).await 311 self.async_inner_from_ram(rx, tx_ram_buf).await
312 } 312 }
313 Err(error) => Err(error), 313 Err(error) => Err(error),
314 } 314 }
diff --git a/embassy-nrf/src/twim.rs b/embassy-nrf/src/twim.rs
index 675029a88..c8ad2a0e3 100644
--- a/embassy-nrf/src/twim.rs
+++ b/embassy-nrf/src/twim.rs
@@ -398,14 +398,9 @@ impl<'d, T: Instance> Twim<'d, T> {
398 Ok(_) => Ok(()), 398 Ok(_) => Ok(()),
399 Err(Error::DMABufferNotInDataMemory) => { 399 Err(Error::DMABufferNotInDataMemory) => {
400 trace!("Copying TWIM tx buffer into RAM for DMA"); 400 trace!("Copying TWIM tx buffer into RAM for DMA");
401 let mut tx_buf = [0u8; FORCE_COPY_BUFFER_SIZE]; 401 let tx_ram_buf = &mut [0; FORCE_COPY_BUFFER_SIZE][..wr_buffer.len()];
402 tx_buf[..wr_buffer.len()].copy_from_slice(wr_buffer); 402 tx_ram_buf.copy_from_slice(wr_buffer);
403 self.setup_write_read_from_ram( 403 self.setup_write_read_from_ram(address, &tx_ram_buf, rd_buffer, inten)
404 address,
405 &tx_buf[..wr_buffer.len()],
406 rd_buffer,
407 inten,
408 )
409 } 404 }
410 Err(error) => Err(error), 405 Err(error) => Err(error),
411 } 406 }
@@ -416,9 +411,9 @@ impl<'d, T: Instance> Twim<'d, T> {
416 Ok(_) => Ok(()), 411 Ok(_) => Ok(()),
417 Err(Error::DMABufferNotInDataMemory) => { 412 Err(Error::DMABufferNotInDataMemory) => {
418 trace!("Copying TWIM tx buffer into RAM for DMA"); 413 trace!("Copying TWIM tx buffer into RAM for DMA");
419 let mut tx_buf = [0u8; FORCE_COPY_BUFFER_SIZE]; 414 let tx_ram_buf = &mut [0; FORCE_COPY_BUFFER_SIZE][..wr_buffer.len()];
420 tx_buf[..wr_buffer.len()].copy_from_slice(wr_buffer); 415 tx_ram_buf.copy_from_slice(wr_buffer);
421 self.setup_write_from_ram(address, &tx_buf[..wr_buffer.len()], inten) 416 self.setup_write_from_ram(address, &tx_ram_buf, inten)
422 } 417 }
423 Err(error) => Err(error), 418 Err(error) => Err(error),
424 } 419 }
diff --git a/embassy-nrf/src/uarte.rs b/embassy-nrf/src/uarte.rs
index 4aa1f02d2..7d7b904b1 100644
--- a/embassy-nrf/src/uarte.rs
+++ b/embassy-nrf/src/uarte.rs
@@ -247,9 +247,9 @@ impl<'d, T: Instance> UarteTx<'d, T> {
247 Ok(_) => Ok(()), 247 Ok(_) => Ok(()),
248 Err(Error::DMABufferNotInDataMemory) => { 248 Err(Error::DMABufferNotInDataMemory) => {
249 trace!("Copying UARTE tx buffer into RAM for DMA"); 249 trace!("Copying UARTE tx buffer into RAM for DMA");
250 let mut tx_buf = [0u8; FORCE_COPY_BUFFER_SIZE]; 250 let ram_buf = &mut [0; FORCE_COPY_BUFFER_SIZE][..buffer.len()];
251 tx_buf[..buffer.len()].copy_from_slice(buffer); 251 ram_buf.copy_from_slice(buffer);
252 self.write_from_ram(&tx_buf[..buffer.len()]).await 252 self.write_from_ram(&ram_buf).await
253 } 253 }
254 Err(error) => Err(error), 254 Err(error) => Err(error),
255 } 255 }
@@ -314,9 +314,9 @@ impl<'d, T: Instance> UarteTx<'d, T> {
314 Ok(_) => Ok(()), 314 Ok(_) => Ok(()),
315 Err(Error::DMABufferNotInDataMemory) => { 315 Err(Error::DMABufferNotInDataMemory) => {
316 trace!("Copying UARTE tx buffer into RAM for DMA"); 316 trace!("Copying UARTE tx buffer into RAM for DMA");
317 let mut tx_buf = [0u8; FORCE_COPY_BUFFER_SIZE]; 317 let ram_buf = &mut [0; FORCE_COPY_BUFFER_SIZE][..buffer.len()];
318 tx_buf[..buffer.len()].copy_from_slice(buffer); 318 ram_buf.copy_from_slice(buffer);
319 self.blocking_write_from_ram(&tx_buf[..buffer.len()]) 319 self.blocking_write_from_ram(&ram_buf)
320 } 320 }
321 Err(error) => Err(error), 321 Err(error) => Err(error),
322 } 322 }