diff options
| author | xoviat <[email protected]> | 2021-01-06 14:31:43 -0600 |
|---|---|---|
| committer | xoviat <[email protected]> | 2021-01-06 14:31:43 -0600 |
| commit | 31ba052f14b9573cfa5669a06b04da451c091ff6 (patch) | |
| tree | 8ddc7a7c12fbfcfdd9d9afdf257c2cfbed3940b0 | |
| parent | 1c3b7541cbfb7793899b002d50700d62c5e1a205 (diff) | |
mark new unsafe
| -rw-r--r-- | embassy-stm32f4-examples/src/serial.rs | 35 | ||||
| -rw-r--r-- | embassy-stm32f4/src/serial.rs | 3 |
2 files changed, 20 insertions, 18 deletions
diff --git a/embassy-stm32f4-examples/src/serial.rs b/embassy-stm32f4-examples/src/serial.rs index baed2e525..11a5b8904 100644 --- a/embassy-stm32f4-examples/src/serial.rs +++ b/embassy-stm32f4-examples/src/serial.rs | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | use cortex_m::singleton; | 8 | use cortex_m::singleton; |
| 9 | use cortex_m_rt::entry; | 9 | use cortex_m_rt::entry; |
| 10 | use embassy::executor::{task, Executor}; | 10 | use embassy::executor::{task, Executor}; |
| 11 | use embassy::uart::Uart; | ||
| 11 | use embassy::util::Forever; | 12 | use embassy::util::Forever; |
| 12 | use embassy_stm32f4::interrupt; | 13 | use embassy_stm32f4::interrupt; |
| 13 | use embassy_stm32f4::serial; | 14 | use embassy_stm32f4::serial; |
| @@ -27,24 +28,24 @@ async fn run(dp: stm32::Peripherals, cp: cortex_m::Peripherals) { | |||
| 27 | .pclk1(24.mhz()) | 28 | .pclk1(24.mhz()) |
| 28 | .freeze(); | 29 | .freeze(); |
| 29 | 30 | ||
| 30 | let mut serial = serial::Serial::new( | 31 | unsafe { |
| 31 | gpioa.pa9.into_alternate_af7(), | 32 | let mut serial = serial::Serial::new( |
| 32 | gpioa.pa10.into_alternate_af7(), | 33 | gpioa.pa9.into_alternate_af7(), |
| 33 | interrupt::take!(DMA2_STREAM7), | 34 | gpioa.pa10.into_alternate_af7(), |
| 34 | interrupt::take!(DMA2_STREAM2), | 35 | interrupt::take!(DMA2_STREAM7), |
| 35 | interrupt::take!(USART1), | 36 | interrupt::take!(DMA2_STREAM2), |
| 36 | dp.DMA2, | 37 | interrupt::take!(USART1), |
| 37 | dp.USART1, | 38 | dp.DMA2, |
| 38 | config::Parity::ParityNone, | 39 | dp.USART1, |
| 39 | 9600.bps(), | 40 | config::Parity::ParityNone, |
| 40 | clocks, | 41 | 9600.bps(), |
| 41 | ); | 42 | clocks, |
| 43 | ); | ||
| 44 | let buf = singleton!(: [u8; 30] = [0; 30]).unwrap(); | ||
| 42 | 45 | ||
| 43 | let buf = singleton!(: [u8; 30] = [0; 30]).unwrap(); | 46 | buf[5] = 0x01; |
| 44 | 47 | serial.send(buf).await; | |
| 45 | buf[5] = 0x01; | 48 | } |
| 46 | |||
| 47 | serial.send(buf).await; | ||
| 48 | } | 49 | } |
| 49 | 50 | ||
| 50 | static EXECUTOR: Forever<Executor> = Forever::new(); | 51 | static EXECUTOR: Forever<Executor> = Forever::new(); |
diff --git a/embassy-stm32f4/src/serial.rs b/embassy-stm32f4/src/serial.rs index a34db9de6..b13438272 100644 --- a/embassy-stm32f4/src/serial.rs +++ b/embassy-stm32f4/src/serial.rs | |||
| @@ -57,7 +57,8 @@ static STATE: State = State { | |||
| 57 | static mut INSTANCE: *const Serial<USART1, Stream7<DMA2>, Stream2<DMA2>> = ptr::null_mut(); | 57 | static mut INSTANCE: *const Serial<USART1, Stream7<DMA2>, Stream2<DMA2>> = ptr::null_mut(); |
| 58 | 58 | ||
| 59 | impl Serial<USART1, Stream7<DMA2>, Stream2<DMA2>> { | 59 | impl Serial<USART1, Stream7<DMA2>, Stream2<DMA2>> { |
| 60 | pub fn new( | 60 | // Leaking futures is forbidden! |
| 61 | pub unsafe fn new( | ||
| 61 | txd: PA9<Alternate<AF7>>, | 62 | txd: PA9<Alternate<AF7>>, |
| 62 | rxd: PA10<Alternate<AF7>>, | 63 | rxd: PA10<Alternate<AF7>>, |
| 63 | tx_int: interrupt::DMA2_STREAM7Interrupt, | 64 | tx_int: interrupt::DMA2_STREAM7Interrupt, |
