Merge pull request #1573 from embassy-rs/stm32-gpdma-clear-irqs
stm32: GPDMA clear irqs
This commit is contained in:
		
						commit
						37a1e9f971
					
				@ -252,6 +252,7 @@ impl<'a, C: Channel> Transfer<'a, C> {
 | 
			
		||||
        super::dmamux::configure_dmamux(&mut *this.channel, request);
 | 
			
		||||
 | 
			
		||||
        ch.cr().write(|w| w.set_reset(true));
 | 
			
		||||
        ch.fcr().write(|w| w.0 = 0xFFFF_FFFF); // clear all irqs
 | 
			
		||||
        ch.llr().write(|_| {}); // no linked list
 | 
			
		||||
        ch.tr1().write(|w| {
 | 
			
		||||
            w.set_sdw(data_size.into());
 | 
			
		||||
 | 
			
		||||
@ -69,12 +69,14 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
    const LEN: usize = 128;
 | 
			
		||||
    let mut tx_buf = [0; LEN];
 | 
			
		||||
    let mut rx_buf = [0; LEN];
 | 
			
		||||
    for i in 0..LEN {
 | 
			
		||||
        tx_buf[i] = i as u8;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let (mut tx, mut rx) = usart.split();
 | 
			
		||||
 | 
			
		||||
    for n in 0..42 {
 | 
			
		||||
        for i in 0..LEN {
 | 
			
		||||
            tx_buf[i] = (i ^ n) as u8;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        let tx_fut = async {
 | 
			
		||||
            tx.write(&tx_buf).await.unwrap();
 | 
			
		||||
        };
 | 
			
		||||
@ -87,6 +89,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        join(rx_fut, tx_fut).await;
 | 
			
		||||
 | 
			
		||||
        assert_eq!(tx_buf, rx_buf);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    info!("Test OK");
 | 
			
		||||
    cortex_m::asm::bkpt();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user