aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/uarte.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-nrf/src/uarte.rs')
-rw-r--r--embassy-nrf/src/uarte.rs20
1 files changed, 10 insertions, 10 deletions
diff --git a/embassy-nrf/src/uarte.rs b/embassy-nrf/src/uarte.rs
index 63df1b682..4703c1a50 100644
--- a/embassy-nrf/src/uarte.rs
+++ b/embassy-nrf/src/uarte.rs
@@ -53,7 +53,6 @@ impl Default for Config {
53#[non_exhaustive] 53#[non_exhaustive]
54pub enum Error { 54pub enum Error {
55 BufferTooLong, 55 BufferTooLong,
56 BufferZeroLength,
57 DMABufferNotInDataMemory, 56 DMABufferNotInDataMemory,
58 // TODO: add other error variants. 57 // TODO: add other error variants.
59} 58}
@@ -370,10 +369,11 @@ impl<'d, T: Instance> UarteTx<'d, T> {
370 } 369 }
371 370
372 pub async fn write_from_ram(&mut self, buffer: &[u8]) -> Result<(), Error> { 371 pub async fn write_from_ram(&mut self, buffer: &[u8]) -> Result<(), Error> {
373 slice_in_ram_or(buffer, Error::DMABufferNotInDataMemory)?;
374 if buffer.len() == 0 { 372 if buffer.len() == 0 {
375 return Err(Error::BufferZeroLength); 373 return Ok(());
376 } 374 }
375
376 slice_in_ram_or(buffer, Error::DMABufferNotInDataMemory)?;
377 if buffer.len() > EASY_DMA_SIZE { 377 if buffer.len() > EASY_DMA_SIZE {
378 return Err(Error::BufferTooLong); 378 return Err(Error::BufferTooLong);
379 } 379 }
@@ -437,10 +437,11 @@ impl<'d, T: Instance> UarteTx<'d, T> {
437 } 437 }
438 438
439 pub fn blocking_write_from_ram(&mut self, buffer: &[u8]) -> Result<(), Error> { 439 pub fn blocking_write_from_ram(&mut self, buffer: &[u8]) -> Result<(), Error> {
440 slice_in_ram_or(buffer, Error::DMABufferNotInDataMemory)?;
441 if buffer.len() == 0 { 440 if buffer.len() == 0 {
442 return Err(Error::BufferZeroLength); 441 return Ok(());
443 } 442 }
443
444 slice_in_ram_or(buffer, Error::DMABufferNotInDataMemory)?;
444 if buffer.len() > EASY_DMA_SIZE { 445 if buffer.len() > EASY_DMA_SIZE {
445 return Err(Error::BufferTooLong); 446 return Err(Error::BufferTooLong);
446 } 447 }
@@ -550,7 +551,7 @@ impl<'d, T: Instance> UarteRx<'d, T> {
550 551
551 pub async fn read(&mut self, buffer: &mut [u8]) -> Result<(), Error> { 552 pub async fn read(&mut self, buffer: &mut [u8]) -> Result<(), Error> {
552 if buffer.len() == 0 { 553 if buffer.len() == 0 {
553 return Err(Error::BufferZeroLength); 554 return Ok(());
554 } 555 }
555 if buffer.len() > EASY_DMA_SIZE { 556 if buffer.len() > EASY_DMA_SIZE {
556 return Err(Error::BufferTooLong); 557 return Err(Error::BufferTooLong);
@@ -603,7 +604,7 @@ impl<'d, T: Instance> UarteRx<'d, T> {
603 604
604 pub fn blocking_read(&mut self, buffer: &mut [u8]) -> Result<(), Error> { 605 pub fn blocking_read(&mut self, buffer: &mut [u8]) -> Result<(), Error> {
605 if buffer.len() == 0 { 606 if buffer.len() == 0 {
606 return Err(Error::BufferZeroLength); 607 return Ok(());
607 } 608 }
608 if buffer.len() > EASY_DMA_SIZE { 609 if buffer.len() > EASY_DMA_SIZE {
609 return Err(Error::BufferTooLong); 610 return Err(Error::BufferTooLong);
@@ -672,7 +673,7 @@ impl<'d, T: Instance, U: TimerInstance> UarteRxWithIdle<'d, T, U> {
672 673
673 pub async fn read_until_idle(&mut self, buffer: &mut [u8]) -> Result<usize, Error> { 674 pub async fn read_until_idle(&mut self, buffer: &mut [u8]) -> Result<usize, Error> {
674 if buffer.len() == 0 { 675 if buffer.len() == 0 {
675 return Err(Error::BufferZeroLength); 676 return Ok(0);
676 } 677 }
677 if buffer.len() > EASY_DMA_SIZE { 678 if buffer.len() > EASY_DMA_SIZE {
678 return Err(Error::BufferTooLong); 679 return Err(Error::BufferTooLong);
@@ -728,7 +729,7 @@ impl<'d, T: Instance, U: TimerInstance> UarteRxWithIdle<'d, T, U> {
728 729
729 pub fn blocking_read_until_idle(&mut self, buffer: &mut [u8]) -> Result<usize, Error> { 730 pub fn blocking_read_until_idle(&mut self, buffer: &mut [u8]) -> Result<usize, Error> {
730 if buffer.len() == 0 { 731 if buffer.len() == 0 {
731 return Err(Error::BufferZeroLength); 732 return Ok(0);
732 } 733 }
733 if buffer.len() > EASY_DMA_SIZE { 734 if buffer.len() > EASY_DMA_SIZE {
734 return Err(Error::BufferTooLong); 735 return Err(Error::BufferTooLong);
@@ -918,7 +919,6 @@ mod eh1 {
918 fn kind(&self) -> embedded_hal_1::serial::ErrorKind { 919 fn kind(&self) -> embedded_hal_1::serial::ErrorKind {
919 match *self { 920 match *self {
920 Self::BufferTooLong => embedded_hal_1::serial::ErrorKind::Other, 921 Self::BufferTooLong => embedded_hal_1::serial::ErrorKind::Other,
921 Self::BufferZeroLength => embedded_hal_1::serial::ErrorKind::Other,
922 Self::DMABufferNotInDataMemory => embedded_hal_1::serial::ErrorKind::Other, 922 Self::DMABufferNotInDataMemory => embedded_hal_1::serial::ErrorKind::Other,
923 } 923 }
924 } 924 }