diff options
| author | Til Blechschmidt <[email protected]> | 2022-03-02 22:48:58 +0100 |
|---|---|---|
| committer | Til Blechschmidt <[email protected]> | 2022-03-02 22:48:58 +0100 |
| commit | 993428e2d45d0183cc7d778d964f046272b9d424 (patch) | |
| tree | 639b4e06a31c205beded92a1a29de3c6d976a3b4 | |
| parent | 3f2d9cfe0a643b1f1afcaef0fcb2cbbf305fd83d (diff) | |
Refactor _from_ram methods to use more readable copy operation
| -rw-r--r-- | embassy-nrf/src/spim.rs | 12 | ||||
| -rw-r--r-- | embassy-nrf/src/twim.rs | 17 | ||||
| -rw-r--r-- | embassy-nrf/src/uarte.rs | 12 |
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 | } |
