Skip to content

Commit

Permalink
Don't require &mut for tx-buffer
Browse files Browse the repository at this point in the history
  • Loading branch information
bjoernQ committed Mar 5, 2024
1 parent 0dd023e commit 6844492
Show file tree
Hide file tree
Showing 11 changed files with 36 additions and 37 deletions.
2 changes: 1 addition & 1 deletion esp-hal/src/aes/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ pub mod dma {
/// is 32736 bytes.
pub fn process<'t, TXBUF, RXBUF>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
read_buffer: &'t mut RXBUF,
mode: Mode,
cipher_mode: CipherMode,
Expand Down
10 changes: 5 additions & 5 deletions esp-hal/src/i2s.rs
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ where
/// transfer
fn write_dma<'t>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
) -> Result<I2sWriteDmaTransfer<'t, 'd, T, CH>, Error>
where
TXBUF: ReadBuffer<Word = u8>;
Expand All @@ -304,7 +304,7 @@ where
/// represents the in-progress DMA transfer
fn write_dma_circular<'t>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
) -> Result<I2sWriteDmaTransfer<'t, 'd, T, CH>, Error>
where
TXBUF: ReadBuffer<Word = u8>;
Expand Down Expand Up @@ -574,7 +574,7 @@ where

fn start_tx_transfer<'t, TXBUF>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
circular: bool,
) -> Result<I2sWriteDmaTransfer<'t, 'd, T, CH>, Error>
where
Expand Down Expand Up @@ -656,7 +656,7 @@ where
{
fn write_dma<'t>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
) -> Result<I2sWriteDmaTransfer<'t, 'd, T, CH>, Error>
where
TXBUF: ReadBuffer<Word = u8>,
Expand All @@ -666,7 +666,7 @@ where

fn write_dma_circular<'t>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
) -> Result<I2sWriteDmaTransfer<'t, 'd, T, CH>, Error>
where
TXBUF: ReadBuffer<Word = u8>,
Expand Down
2 changes: 1 addition & 1 deletion esp-hal/src/lcd_cam/lcd/i8080.rs
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ where
&'t mut self,
cmd: impl Into<Command<P::Word>>,
dummy: u8,
data: &mut TXBUF,
data: &'t TXBUF,
) -> Result<Transfer<'t, 'd, TX, P>, DmaError>
where
TXBUF: ReadBuffer<Word = P::Word>,
Expand Down
2 changes: 1 addition & 1 deletion esp-hal/src/parl_io.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1167,7 +1167,7 @@ where
/// The maximum amount of data to be sent is 32736 bytes.
pub fn write_dma<'t, TXBUF>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
) -> Result<DmaTransfer<'t, 'd, CH, P, CP>, Error>
where
TXBUF: ReadBuffer<Word = u8>,
Expand Down
6 changes: 3 additions & 3 deletions esp-hal/src/spi/master.rs
Original file line number Diff line number Diff line change
Expand Up @@ -988,7 +988,7 @@ pub mod dma {
#[cfg_attr(feature = "place-spi-driver-in-ram", ram)]
pub fn dma_write<'t, TXBUF>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
) -> Result<SpiDmaTransfer<'t, 'd, T, C, M>, super::Error>
where
TXBUF: ReadBuffer<Word = u8>,
Expand Down Expand Up @@ -1035,7 +1035,7 @@ pub mod dma {
/// 32736 bytes.
pub fn dma_transfer<'t, TXBUF, RXBUF>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
read_buffer: &'t mut RXBUF,
) -> Result<SpiDmaTransferRxTx<'t, 'd, T, C, M>, super::Error>
where
Expand Down Expand Up @@ -1147,7 +1147,7 @@ pub mod dma {
cmd: Command,
address: Address,
dummy: u8,
buffer: &'t mut TXBUF,
buffer: &'t TXBUF,
) -> Result<SpiDmaTransfer<'t, 'd, T, C, M>, super::Error>
where
TXBUF: ReadBuffer<Word = u8>,
Expand Down
4 changes: 2 additions & 2 deletions esp-hal/src/spi/slave.rs
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ pub mod dma {
/// The write is driven by the SPI master's sclk signal and cs line.
pub fn dma_write<'t, TXBUF>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
) -> Result<SpiDmaTransferTx<'t, 'd, T, C>, Error>
where
TXBUF: ReadBuffer<Word = u8>,
Expand Down Expand Up @@ -449,7 +449,7 @@ pub mod dma {
/// line.
pub fn dma_transfer<'t, TXBUF, RXBUF>(
&'t mut self,
words: &'t mut TXBUF,
words: &'t TXBUF,
read_buffer: &'t mut RXBUF,
) -> Result<SpiDmaTransferRxTx<'t, 'd, T, C>, Error>
where
Expand Down
19 changes: 9 additions & 10 deletions examples/src/bin/aes_dma.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ fn main() -> ! {
let dma = Dma::new(peripherals.DMA);
let dma_channel = dma.channel0;

let (mut tx_buffer, mut tx_descriptors, mut rx_buffer, mut rx_descriptors) =
dma_buffers!(16, 16);
let (input, mut tx_descriptors, mut output, mut rx_descriptors) = dma_buffers!(16, 16);

let mut aes = Aes::new(peripherals.AES).with_dma(dma_channel.configure(
false,
Expand All @@ -42,13 +41,13 @@ fn main() -> ! {
));

let keytext = [1u8, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
rx_buffer.copy_from_slice(&[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
input.copy_from_slice(&[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);

let pre_hw_encrypt = cycles();
let transfer = aes
.process(
&mut rx_buffer,
&mut tx_buffer,
&input,
&mut output,
Mode::Encryption128,
CipherMode::Ecb,
keytext,
Expand All @@ -62,15 +61,15 @@ fn main() -> ! {
);

let mut hw_encrypted = [0u8; 16];
(&mut hw_encrypted[..]).copy_from_slice(tx_buffer);
(&mut hw_encrypted[..]).copy_from_slice(output);

rx_buffer.copy_from_slice(tx_buffer);
input.copy_from_slice(output);

let pre_hw_decrypt = cycles();
let transfer = aes
.process(
&mut rx_buffer,
&mut tx_buffer,
&input,
&mut output,
Mode::Decryption128,
CipherMode::Ecb,
keytext,
Expand All @@ -84,7 +83,7 @@ fn main() -> ! {
);

let mut hw_decrypted = [0u8; 16];
(&mut hw_decrypted[..]).copy_from_slice(tx_buffer);
(&mut hw_decrypted[..]).copy_from_slice(output);

// create an array with aes block size
let mut block_buf = [0_u8; 16];
Expand Down
4 changes: 2 additions & 2 deletions examples/src/bin/i2s_sound.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ fn main() -> ! {
#[cfg(not(any(feature = "esp32", feature = "esp32s2")))]
let dma_channel = dma.channel0;

let (mut tx_buffer, mut tx_descriptors, _, mut rx_descriptors) = dma_buffers!(32000, 0);
let (tx_buffer, mut tx_descriptors, _, mut rx_descriptors) = dma_buffers!(32000, 0);

let i2s = I2s::new(
peripherals.I2S0,
Expand Down Expand Up @@ -102,7 +102,7 @@ fn main() -> ! {
}

let mut filler = [0u8; 10000];
let mut transfer = i2s_tx.write_dma_circular(&mut tx_buffer).unwrap();
let mut transfer = i2s_tx.write_dma_circular(&tx_buffer).unwrap();

loop {
let avail = transfer.available();
Expand Down
8 changes: 4 additions & 4 deletions examples/src/bin/lcd_i8080.rs
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ fn main() -> ! {
let total_pixels = width as usize * height as usize;
let total_bytes = total_pixels * 2;

let mut buffer = tx_buffer;
let buffer = tx_buffer;

for color in [RED, BLUE].iter().cycle() {
let color = color.to_be_bytes();
Expand All @@ -223,19 +223,19 @@ fn main() -> ! {

let mut bytes_left_to_write = total_bytes;

let transfer = i8080.send_dma(0x2C, 0, &mut buffer).unwrap();
let transfer = i8080.send_dma(0x2C, 0, &buffer).unwrap();
transfer.wait().unwrap();

bytes_left_to_write -= buffer.len();

while bytes_left_to_write >= buffer.len() {
let transfer = i8080.send_dma(0x3C, 0, &mut buffer).unwrap();
let transfer = i8080.send_dma(0x3C, 0, &buffer).unwrap();
transfer.wait().unwrap();

bytes_left_to_write -= buffer.len();
}
if bytes_left_to_write > 0 {
let transfer = i8080.send_dma(0x3C, 0, &mut buffer).unwrap();
let transfer = i8080.send_dma(0x3C, 0, &buffer).unwrap();
transfer.wait().unwrap();
}

Expand Down
4 changes: 2 additions & 2 deletions examples/src/bin/parl_io_tx.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ fn main() -> ! {
)
.unwrap();

let mut buffer = tx_buffer;
let buffer = tx_buffer;
for i in 0..buffer.len() {
buffer[i] = (i % 255) as u8;
}

let mut delay = Delay::new(&clocks);

loop {
let transfer = parl_io_tx.write_dma(&mut buffer).unwrap();
let transfer = parl_io_tx.write_dma(&buffer).unwrap();
transfer.wait().unwrap();
println!("Transferred {} bytes", buffer.len());

Expand Down
12 changes: 6 additions & 6 deletions examples/src/bin/qspi_flash.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ fn main() -> ! {
let mut delay = Delay::new(&clocks);

// DMA buffer require a static life-time
let (mut zero_buf, _, _, _) = dma_buffers!(0);
let mut send = tx_buffer;
let (zero_buf, _, _, _) = dma_buffers!(0);
let send = tx_buffer;
let mut receive = rx_buffer;

// write enable
Expand All @@ -107,7 +107,7 @@ fn main() -> ! {
Command::Command8(0x06, SpiDataMode::Single),
Address::None,
0,
&mut zero_buf,
&zero_buf,
)
.unwrap();
transfer.wait().unwrap();
Expand All @@ -120,7 +120,7 @@ fn main() -> ! {
Command::Command8(0x20, SpiDataMode::Single),
Address::Address24(0x000000, SpiDataMode::Single),
0,
&mut zero_buf,
&zero_buf,
)
.unwrap();
transfer.wait().unwrap();
Expand All @@ -133,7 +133,7 @@ fn main() -> ! {
Command::Command8(0x06, SpiDataMode::Single),
Address::None,
0,
&mut zero_buf,
&zero_buf,
)
.unwrap();
transfer.wait().unwrap();
Expand All @@ -148,7 +148,7 @@ fn main() -> ! {
Command::Command8(0x32, SpiDataMode::Single),
Address::Address24(0x000000, SpiDataMode::Single),
0,
&mut send,
&send,
)
.unwrap();
transfer.wait().unwrap();
Expand Down

0 comments on commit 6844492

Please sign in to comment.