aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-05-13 16:20:52 +0200
committerDario Nieuwenhuis <[email protected]>2024-05-13 16:20:52 +0200
commit7089e5b586b1f35256ce285d14403676437fc4c2 (patch)
tree112675fd5b51af9ca0361aca9140b34ffdf13c47
parent3c52ef60b19468a8700d612699c869f0bdcae339 (diff)
stm32/tests: add stm32u0 hil.
-rwxr-xr-xci.sh1
-rw-r--r--tests/stm32/Cargo.toml1
-rw-r--r--tests/stm32/src/bin/rng.rs7
-rw-r--r--tests/stm32/src/common.rs24
4 files changed, 32 insertions, 1 deletions
diff --git a/ci.sh b/ci.sh
index 1ba00f404..6fff1e68c 100755
--- a/ci.sh
+++ b/ci.sh
@@ -248,6 +248,7 @@ cargo batch \
248 --- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32h7s3l8 --out-dir out/tests/stm32h7s3l8 \ 248 --- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32h7s3l8 --out-dir out/tests/stm32h7s3l8 \
249 --- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32f091rc --out-dir out/tests/stm32f091rc \ 249 --- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32f091rc --out-dir out/tests/stm32f091rc \
250 --- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv8m.main-none-eabihf --features stm32h503rb --out-dir out/tests/stm32h503rb \ 250 --- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv8m.main-none-eabihf --features stm32h503rb --out-dir out/tests/stm32h503rb \
251 --- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32u083rc --out-dir out/tests/stm32u083rc \
251 --- build --release --manifest-path tests/rp/Cargo.toml --target thumbv6m-none-eabi --out-dir out/tests/rpi-pico \ 252 --- build --release --manifest-path tests/rp/Cargo.toml --target thumbv6m-none-eabi --out-dir out/tests/rpi-pico \
252 --- build --release --manifest-path tests/nrf52840/Cargo.toml --target thumbv7em-none-eabi --out-dir out/tests/nrf52840-dk \ 253 --- build --release --manifest-path tests/nrf52840/Cargo.toml --target thumbv7em-none-eabi --out-dir out/tests/nrf52840-dk \
253 --- build --release --manifest-path tests/nrf51422/Cargo.toml --target thumbv6m-none-eabi --out-dir out/tests/nrf51-dk \ 254 --- build --release --manifest-path tests/nrf51422/Cargo.toml --target thumbv6m-none-eabi --out-dir out/tests/nrf51-dk \
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"]
33stm32f091rc = ["embassy-stm32/stm32f091rc", "cm0", "not-gpdma", "chrono"] 33stm32f091rc = ["embassy-stm32/stm32f091rc", "cm0", "not-gpdma", "chrono"]
34stm32h503rb = ["embassy-stm32/stm32h503rb", "rng", "stop"] 34stm32h503rb = ["embassy-stm32/stm32h503rb", "rng", "stop"]
35stm32h7s3l8 = ["embassy-stm32/stm32h7s3l8", "rng", "cordic", "hash"] # TODO: fdcan crashes, cryp dma hangs. 35stm32h7s3l8 = ["embassy-stm32/stm32h7s3l8", "rng", "cordic", "hash"] # TODO: fdcan crashes, cryp dma hangs.
36stm32u083rc = ["embassy-stm32/stm32u083rc", "cm0", "rng", "chrono"]
36 37
37cryp = [] 38cryp = []
38hash = [] 39hash = []
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 {
23bind_interrupts!(struct Irqs { 23bind_interrupts!(struct Irqs {
24 RNG_LPUART1 => rng::InterruptHandler<peripherals::RNG>; 24 RNG_LPUART1 => rng::InterruptHandler<peripherals::RNG>;
25}); 25});
26#[cfg(any(feature = "stm32u083rc"))]
27bind_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)))]
33bind_interrupts!(struct Irqs { 38bind_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");
62teleprobe_meta::target!(b"nucleo-stm32h503rb"); 62teleprobe_meta::target!(b"nucleo-stm32h503rb");
63#[cfg(feature = "stm32h7s3l8")] 63#[cfg(feature = "stm32h7s3l8")]
64teleprobe_meta::target!(b"nucleo-stm32h7s3l8"); 64teleprobe_meta::target!(b"nucleo-stm32h7s3l8");
65#[cfg(feature = "stm32u083rc")]
66teleprobe_meta::target!(b"nucleo-stm32u083rc");
65 67
66macro_rules! define_peris { 68macro_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")]
264define_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
262pub fn config() -> Config { 270pub 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}