diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/stm32/Cargo.toml | 1 | ||||
| -rw-r--r-- | tests/stm32/src/bin/rng.rs | 7 | ||||
| -rw-r--r-- | tests/stm32/src/common.rs | 24 |
3 files changed, 31 insertions, 1 deletions
diff --git a/tests/stm32/Cargo.toml b/tests/stm32/Cargo.toml index 6afa2a68e..23dfd1565 100644 --- a/tests/stm32/Cargo.toml +++ b/tests/stm32/Cargo.toml | |||
| @@ -33,6 +33,7 @@ stm32wl55jc = ["embassy-stm32/stm32wl55jc-cm4", "not-gpdma", "rng", "chrono"] | |||
| 33 | stm32f091rc = ["embassy-stm32/stm32f091rc", "cm0", "not-gpdma", "chrono"] | 33 | stm32f091rc = ["embassy-stm32/stm32f091rc", "cm0", "not-gpdma", "chrono"] |
| 34 | stm32h503rb = ["embassy-stm32/stm32h503rb", "rng", "stop"] | 34 | stm32h503rb = ["embassy-stm32/stm32h503rb", "rng", "stop"] |
| 35 | stm32h7s3l8 = ["embassy-stm32/stm32h7s3l8", "rng", "cordic", "hash"] # TODO: fdcan crashes, cryp dma hangs. | 35 | stm32h7s3l8 = ["embassy-stm32/stm32h7s3l8", "rng", "cordic", "hash"] # TODO: fdcan crashes, cryp dma hangs. |
| 36 | stm32u083rc = ["embassy-stm32/stm32u083rc", "cm0", "rng", "chrono"] | ||
| 36 | 37 | ||
| 37 | cryp = [] | 38 | cryp = [] |
| 38 | hash = [] | 39 | hash = [] |
diff --git a/tests/stm32/src/bin/rng.rs b/tests/stm32/src/bin/rng.rs index 7f2023d4d..15ef4fb60 100644 --- a/tests/stm32/src/bin/rng.rs +++ b/tests/stm32/src/bin/rng.rs | |||
| @@ -23,12 +23,17 @@ bind_interrupts!(struct Irqs { | |||
| 23 | bind_interrupts!(struct Irqs { | 23 | bind_interrupts!(struct Irqs { |
| 24 | RNG_LPUART1 => rng::InterruptHandler<peripherals::RNG>; | 24 | RNG_LPUART1 => rng::InterruptHandler<peripherals::RNG>; |
| 25 | }); | 25 | }); |
| 26 | #[cfg(any(feature = "stm32u083rc"))] | ||
| 27 | bind_interrupts!(struct Irqs { | ||
| 28 | RNG_CRYP => rng::InterruptHandler<peripherals::RNG>; | ||
| 29 | }); | ||
| 26 | #[cfg(not(any( | 30 | #[cfg(not(any( |
| 27 | feature = "stm32l4a6zg", | 31 | feature = "stm32l4a6zg", |
| 28 | feature = "stm32l073rz", | 32 | feature = "stm32l073rz", |
| 29 | feature = "stm32h755zi", | 33 | feature = "stm32h755zi", |
| 30 | feature = "stm32h753zi", | 34 | feature = "stm32h753zi", |
| 31 | feature = "stm32f429zi" | 35 | feature = "stm32f429zi", |
| 36 | feature = "stm32u083rc" | ||
| 32 | )))] | 37 | )))] |
| 33 | bind_interrupts!(struct Irqs { | 38 | bind_interrupts!(struct Irqs { |
| 34 | RNG => rng::InterruptHandler<peripherals::RNG>; | 39 | RNG => rng::InterruptHandler<peripherals::RNG>; |
diff --git a/tests/stm32/src/common.rs b/tests/stm32/src/common.rs index 07c61956f..4e0231858 100644 --- a/tests/stm32/src/common.rs +++ b/tests/stm32/src/common.rs | |||
| @@ -62,6 +62,8 @@ teleprobe_meta::target!(b"nucleo-stm32f091rc"); | |||
| 62 | teleprobe_meta::target!(b"nucleo-stm32h503rb"); | 62 | teleprobe_meta::target!(b"nucleo-stm32h503rb"); |
| 63 | #[cfg(feature = "stm32h7s3l8")] | 63 | #[cfg(feature = "stm32h7s3l8")] |
| 64 | teleprobe_meta::target!(b"nucleo-stm32h7s3l8"); | 64 | teleprobe_meta::target!(b"nucleo-stm32h7s3l8"); |
| 65 | #[cfg(feature = "stm32u083rc")] | ||
| 66 | teleprobe_meta::target!(b"nucleo-stm32u083rc"); | ||
| 65 | 67 | ||
| 66 | macro_rules! define_peris { | 68 | macro_rules! define_peris { |
| 67 | ($($name:ident = $peri:ident,)* $(@irq $irq_name:ident = $irq_code:tt,)*) => { | 69 | ($($name:ident = $peri:ident,)* $(@irq $irq_name:ident = $irq_code:tt,)*) => { |
| @@ -258,6 +260,12 @@ define_peris!( | |||
| 258 | SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PB5, SPI_MISO = PA6, SPI_TX_DMA = GPDMA1_CH0, SPI_RX_DMA = GPDMA1_CH1, | 260 | SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PB5, SPI_MISO = PA6, SPI_TX_DMA = GPDMA1_CH0, SPI_RX_DMA = GPDMA1_CH1, |
| 259 | @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;}, | 261 | @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;}, |
| 260 | ); | 262 | ); |
| 263 | #[cfg(feature = "stm32u083rc")] | ||
| 264 | define_peris!( | ||
| 265 | UART = USART1, UART_TX = PA9, UART_RX = PA10, UART_TX_DMA = DMA1_CH1, UART_RX_DMA = DMA1_CH2, | ||
| 266 | SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PA7, SPI_MISO = PA6, SPI_TX_DMA = DMA1_CH1, SPI_RX_DMA = DMA1_CH2, | ||
| 267 | @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;}, | ||
| 268 | ); | ||
| 261 | 269 | ||
| 262 | pub fn config() -> Config { | 270 | pub fn config() -> Config { |
| 263 | #[allow(unused_mut)] | 271 | #[allow(unused_mut)] |
| @@ -673,5 +681,21 @@ pub fn config() -> Config { | |||
| 673 | config.rcc.voltage_scale = VoltageScale::HIGH; | 681 | config.rcc.voltage_scale = VoltageScale::HIGH; |
| 674 | config.rcc.mux.spi1sel = mux::Spi123sel::PLL1_Q; | 682 | config.rcc.mux.spi1sel = mux::Spi123sel::PLL1_Q; |
| 675 | } | 683 | } |
| 684 | #[cfg(any(feature = "stm32u083rc"))] | ||
| 685 | { | ||
| 686 | config.rcc.hsi = true; | ||
| 687 | config.rcc.pll = Some(Pll { | ||
| 688 | source: PllSource::HSI, // 16 MHz | ||
| 689 | prediv: PllPreDiv::DIV1, | ||
| 690 | mul: PllMul::MUL7, | ||
| 691 | divp: None, | ||
| 692 | divq: None, | ||
| 693 | divr: Some(PllRDiv::DIV2), // 56 MHz | ||
| 694 | }); | ||
| 695 | config.rcc.sys = Sysclk::PLL1_R; | ||
| 696 | config.rcc.hsi48 = Some(Hsi48Config { sync_from_usb: true }); // needed for USB | ||
| 697 | config.rcc.mux.clk48sel = mux::Clk48sel::HSI48; // USB uses ICLK | ||
| 698 | } | ||
| 699 | |||
| 676 | config | 700 | config |
| 677 | } | 701 | } |
