aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-02-17 02:36:48 +0100
committerDario Nieuwenhuis <[email protected]>2024-02-17 02:36:48 +0100
commit0e80dc4cd929f201dd35b569aa0aadd891c58682 (patch)
tree37bf70a9d6f4c8d50f460d4e95e677329d37db50 /tests
parent9352621058bb4e96b8897ec431cc939838729442 (diff)
tests/stm32: add stm32f091rc, stm32h503rb.
Diffstat (limited to 'tests')
-rw-r--r--tests/stm32/Cargo.toml2
-rw-r--r--tests/stm32/build.rs2
-rw-r--r--tests/stm32/src/bin/hash.rs1
-rw-r--r--tests/stm32/src/common.rs58
4 files changed, 62 insertions, 1 deletions
diff --git a/tests/stm32/Cargo.toml b/tests/stm32/Cargo.toml
index d94045737..8554682a4 100644
--- a/tests/stm32/Cargo.toml
+++ b/tests/stm32/Cargo.toml
@@ -30,6 +30,8 @@ stm32u5a5zj = ["embassy-stm32/stm32u5a5zj", "chrono", "rng"]
30stm32wb55rg = ["embassy-stm32/stm32wb55rg", "chrono", "not-gpdma", "ble", "mac" , "rng"] 30stm32wb55rg = ["embassy-stm32/stm32wb55rg", "chrono", "not-gpdma", "ble", "mac" , "rng"]
31stm32wba52cg = ["embassy-stm32/stm32wba52cg", "chrono", "rng", "hash"] 31stm32wba52cg = ["embassy-stm32/stm32wba52cg", "chrono", "rng", "hash"]
32stm32wl55jc = ["embassy-stm32/stm32wl55jc-cm4", "not-gpdma", "rng", "chrono"] 32stm32wl55jc = ["embassy-stm32/stm32wl55jc-cm4", "not-gpdma", "rng", "chrono"]
33stm32f091rc = ["embassy-stm32/stm32f091rc", "cm0", "not-gpdma", "chrono"]
34stm32h503rb = ["embassy-stm32/stm32h503rb", "rng"]
33 35
34hash = [] 36hash = []
35eth = ["embassy-executor/task-arena-size-16384"] 37eth = ["embassy-executor/task-arena-size-16384"]
diff --git a/tests/stm32/build.rs b/tests/stm32/build.rs
index f32a7b2f8..bc5589164 100644
--- a/tests/stm32/build.rs
+++ b/tests/stm32/build.rs
@@ -16,6 +16,8 @@ fn main() -> Result<(), Box<dyn Error>> {
16 feature = "stm32l073rz", 16 feature = "stm32l073rz",
17 // wrong ram size in stm32-data 17 // wrong ram size in stm32-data
18 feature = "stm32wl55jc", 18 feature = "stm32wl55jc",
19 // no VTOR, so interrupts can't work when running from RAM
20 feature = "stm32f091rc",
19 )) { 21 )) {
20 println!("cargo:rustc-link-arg-bins=-Tlink.x"); 22 println!("cargo:rustc-link-arg-bins=-Tlink.x");
21 println!("cargo:rerun-if-changed=link.x"); 23 println!("cargo:rerun-if-changed=link.x");
diff --git a/tests/stm32/src/bin/hash.rs b/tests/stm32/src/bin/hash.rs
index d1cfac5ce..8cc5d593f 100644
--- a/tests/stm32/src/bin/hash.rs
+++ b/tests/stm32/src/bin/hash.rs
@@ -24,6 +24,7 @@ bind_interrupts!(struct Irqs {
24 feature = "stm32wba52cg", 24 feature = "stm32wba52cg",
25 feature = "stm32l552ze", 25 feature = "stm32l552ze",
26 feature = "stm32h563zi", 26 feature = "stm32h563zi",
27 feature = "stm32h503rb",
27 feature = "stm32u5a5zj", 28 feature = "stm32u5a5zj",
28 feature = "stm32u585ai" 29 feature = "stm32u585ai"
29))] 30))]
diff --git a/tests/stm32/src/common.rs b/tests/stm32/src/common.rs
index 182ad6298..50a7f9bae 100644
--- a/tests/stm32/src/common.rs
+++ b/tests/stm32/src/common.rs
@@ -54,6 +54,10 @@ teleprobe_meta::target!(b"nucleo-stm32l496zg");
54teleprobe_meta::target!(b"nucleo-stm32wl55jc"); 54teleprobe_meta::target!(b"nucleo-stm32wl55jc");
55#[cfg(feature = "stm32wba52cg")] 55#[cfg(feature = "stm32wba52cg")]
56teleprobe_meta::target!(b"nucleo-stm32wba52cg"); 56teleprobe_meta::target!(b"nucleo-stm32wba52cg");
57#[cfg(feature = "stm32f091rc")]
58teleprobe_meta::target!(b"nucleo-stm32f091rc");
59#[cfg(feature = "stm32h503rb")]
60teleprobe_meta::target!(b"nucleo-stm32h503rb");
57 61
58macro_rules! define_peris { 62macro_rules! define_peris {
59 ($($name:ident = $peri:ident,)* $(@irq $irq_name:ident = $irq_code:tt,)*) => { 63 ($($name:ident = $peri:ident,)* $(@irq $irq_name:ident = $irq_code:tt,)*) => {
@@ -85,6 +89,12 @@ macro_rules! define_peris {
85 }; 89 };
86} 90}
87 91
92#[cfg(feature = "stm32f091rc")]
93define_peris!(
94 UART = USART1, UART_TX = PA9, UART_RX = PA10, UART_TX_DMA = DMA1_CH4, UART_RX_DMA = DMA1_CH5,
95 SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PA7, SPI_MISO = PA6, SPI_TX_DMA = DMA1_CH3, SPI_RX_DMA = DMA1_CH2,
96 @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;},
97);
88#[cfg(feature = "stm32f103c8")] 98#[cfg(feature = "stm32f103c8")]
89define_peris!( 99define_peris!(
90 UART = USART1, UART_TX = PA9, UART_RX = PA10, UART_TX_DMA = DMA1_CH4, UART_RX_DMA = DMA1_CH5, 100 UART = USART1, UART_TX = PA9, UART_RX = PA10, UART_TX_DMA = DMA1_CH4, UART_RX_DMA = DMA1_CH5,
@@ -157,6 +167,12 @@ define_peris!(
157 SPI = SPI4, SPI_SCK = PE12, SPI_MOSI = PE14, SPI_MISO = PE13, SPI_TX_DMA = GPDMA1_CH0, SPI_RX_DMA = GPDMA1_CH1, 167 SPI = SPI4, SPI_SCK = PE12, SPI_MOSI = PE14, SPI_MISO = PE13, SPI_TX_DMA = GPDMA1_CH0, SPI_RX_DMA = GPDMA1_CH1,
158 @irq UART = {LPUART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::LPUART1>;}, 168 @irq UART = {LPUART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::LPUART1>;},
159); 169);
170#[cfg(feature = "stm32h503rb")]
171define_peris!(
172 UART = USART1, UART_TX = PB14, UART_RX = PB15, UART_TX_DMA = GPDMA1_CH0, UART_RX_DMA = GPDMA1_CH1,
173 SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PA7, SPI_MISO = PA6, SPI_TX_DMA = GPDMA1_CH0, SPI_RX_DMA = GPDMA1_CH1,
174 @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;},
175);
160#[cfg(feature = "stm32c031c6")] 176#[cfg(feature = "stm32c031c6")]
161define_peris!( 177define_peris!(
162 UART = USART1, UART_TX = PB6, UART_RX = PB7, UART_TX_DMA = DMA1_CH1, UART_RX_DMA = DMA1_CH2, 178 UART = USART1, UART_TX = PB6, UART_RX = PB7, UART_TX_DMA = DMA1_CH1, UART_RX_DMA = DMA1_CH2,
@@ -247,6 +263,22 @@ pub fn config() -> Config {
247 config.rcc = embassy_stm32::rcc::WPAN_DEFAULT; 263 config.rcc = embassy_stm32::rcc::WPAN_DEFAULT;
248 } 264 }
249 265
266 #[cfg(feature = "stm32f091rc")]
267 {
268 use embassy_stm32::rcc::*;
269 config.rcc.hse = Some(Hse {
270 freq: Hertz(8_000_000),
271 mode: HseMode::Bypass,
272 });
273 config.rcc.pll = Some(Pll {
274 src: PllSource::HSE,
275 prediv: PllPreDiv::DIV1,
276 mul: PllMul::MUL6,
277 });
278 config.rcc.sys = Sysclk::PLL1_P;
279 config.rcc.ahb_pre = AHBPrescaler::DIV1;
280 config.rcc.apb1_pre = APBPrescaler::DIV1;
281 }
250 #[cfg(feature = "stm32f103c8")] 282 #[cfg(feature = "stm32f103c8")]
251 { 283 {
252 use embassy_stm32::rcc::*; 284 use embassy_stm32::rcc::*;
@@ -264,7 +296,6 @@ pub fn config() -> Config {
264 config.rcc.apb1_pre = APBPrescaler::DIV2; 296 config.rcc.apb1_pre = APBPrescaler::DIV2;
265 config.rcc.apb2_pre = APBPrescaler::DIV1; 297 config.rcc.apb2_pre = APBPrescaler::DIV1;
266 } 298 }
267
268 #[cfg(feature = "stm32f207zg")] 299 #[cfg(feature = "stm32f207zg")]
269 { 300 {
270 use embassy_stm32::rcc::*; 301 use embassy_stm32::rcc::*;
@@ -400,6 +431,31 @@ pub fn config() -> Config {
400 config.rcc.voltage_scale = VoltageScale::Scale0; 431 config.rcc.voltage_scale = VoltageScale::Scale0;
401 } 432 }
402 433
434 #[cfg(feature = "stm32h503rb")]
435 {
436 use embassy_stm32::rcc::*;
437 config.rcc.hsi = None;
438 config.rcc.hsi48 = Some(Default::default()); // needed for RNG
439 config.rcc.hse = Some(Hse {
440 freq: Hertz(24_000_000),
441 mode: HseMode::Oscillator,
442 });
443 config.rcc.pll1 = Some(Pll {
444 source: PllSource::HSE,
445 prediv: PllPreDiv::DIV6,
446 mul: PllMul::MUL125,
447 divp: Some(PllDiv::DIV2),
448 divq: Some(PllDiv::DIV2),
449 divr: None,
450 });
451 config.rcc.ahb_pre = AHBPrescaler::DIV1;
452 config.rcc.apb1_pre = APBPrescaler::DIV1;
453 config.rcc.apb2_pre = APBPrescaler::DIV1;
454 config.rcc.apb3_pre = APBPrescaler::DIV1;
455 config.rcc.sys = Sysclk::PLL1_P;
456 config.rcc.voltage_scale = VoltageScale::Scale0;
457 }
458
403 #[cfg(any(feature = "stm32h755zi", feature = "stm32h753zi"))] 459 #[cfg(any(feature = "stm32h755zi", feature = "stm32h753zi"))]
404 { 460 {
405 use embassy_stm32::rcc::*; 461 use embassy_stm32::rcc::*;