diff options
| author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-11-02 20:42:41 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-11-02 20:42:41 +0000 |
| commit | 1bf6e646c9ad0d14ce3510442688ef604c6f363f (patch) | |
| tree | 46488ce03399de79576e96e33df717661d1a2096 | |
| parent | 569ecd699d1d7f346359b482ad7435fb44ff388b (diff) | |
| parent | f9c266bc10879080604d710f23cecfd524879d55 (diff) | |
Merge #465
465: Adjust for STM32U5. r=lulf a=bobmcwhirter
Co-authored-by: Bob McWhirter <[email protected]>
| -rw-r--r-- | .github/workflows/rust.yml | 2 | ||||
| -rw-r--r-- | embassy-stm32/Cargo.toml | 23 | ||||
| -rw-r--r-- | embassy-stm32/src/exti.rs | 16 | ||||
| -rw-r--r-- | embassy-stm32/src/pwr/mod.rs | 1 | ||||
| -rw-r--r-- | embassy-stm32/src/pwr/u5.rs | 1 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/mod.rs | 11 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/u5/mod.rs | 15 | ||||
| -rw-r--r-- | embassy-stm32/src/usart/mod.rs | 1 | ||||
| -rw-r--r-- | examples/stm32l4/.cargo/config.toml | 3 | ||||
| -rw-r--r-- | examples/stm32u5/.cargo/config.toml | 18 | ||||
| -rw-r--r-- | examples/stm32u5/Cargo.toml | 37 | ||||
| -rw-r--r-- | examples/stm32u5/src/bin/boot.rs | 16 | ||||
| -rw-r--r-- | examples/stm32u5/src/example_common.rs | 17 | ||||
| m--------- | stm32-data | 0 | ||||
| -rw-r--r-- | stm32-gen-features/src/lib.rs | 3 | ||||
| -rw-r--r-- | stm32-metapac-gen/src/lib.rs | 3 | ||||
| -rw-r--r-- | stm32-metapac/Cargo.toml | 23 |
17 files changed, 176 insertions, 14 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 7d91357d1..759435d8b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml | |||
| @@ -117,6 +117,8 @@ jobs: | |||
| 117 | target: thumbv7m-none-eabi | 117 | target: thumbv7m-none-eabi |
| 118 | - package: examples/stm32f7 | 118 | - package: examples/stm32f7 |
| 119 | target: thumbv7em-none-eabihf | 119 | target: thumbv7em-none-eabihf |
| 120 | - package: examples/stm32u5 | ||
| 121 | target: thumbv7em-none-eabihf | ||
| 120 | steps: | 122 | steps: |
| 121 | - uses: actions/checkout@v2 | 123 | - uses: actions/checkout@v2 |
| 122 | with: | 124 | with: |
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml index dafb8ef77..d6b0586c9 100644 --- a/embassy-stm32/Cargo.toml +++ b/embassy-stm32/Cargo.toml | |||
| @@ -1037,6 +1037,29 @@ stm32l4s7zi = [ "stm32-metapac/stm32l4s7zi" ] | |||
| 1037 | stm32l4s9ai = [ "stm32-metapac/stm32l4s9ai" ] | 1037 | stm32l4s9ai = [ "stm32-metapac/stm32l4s9ai" ] |
| 1038 | stm32l4s9vi = [ "stm32-metapac/stm32l4s9vi" ] | 1038 | stm32l4s9vi = [ "stm32-metapac/stm32l4s9vi" ] |
| 1039 | stm32l4s9zi = [ "stm32-metapac/stm32l4s9zi" ] | 1039 | stm32l4s9zi = [ "stm32-metapac/stm32l4s9zi" ] |
| 1040 | stm32u575ag = [ "stm32-metapac/stm32u575ag" ] | ||
| 1041 | stm32u575ai = [ "stm32-metapac/stm32u575ai" ] | ||
| 1042 | stm32u575cg = [ "stm32-metapac/stm32u575cg" ] | ||
| 1043 | stm32u575ci = [ "stm32-metapac/stm32u575ci" ] | ||
| 1044 | stm32u575og = [ "stm32-metapac/stm32u575og" ] | ||
| 1045 | stm32u575oi = [ "stm32-metapac/stm32u575oi" ] | ||
| 1046 | stm32u575qg = [ "stm32-metapac/stm32u575qg" ] | ||
| 1047 | stm32u575qi = [ "stm32-metapac/stm32u575qi" ] | ||
| 1048 | stm32u575rg = [ "stm32-metapac/stm32u575rg" ] | ||
| 1049 | stm32u575ri = [ "stm32-metapac/stm32u575ri" ] | ||
| 1050 | stm32u575vg = [ "stm32-metapac/stm32u575vg" ] | ||
| 1051 | stm32u575vi = [ "stm32-metapac/stm32u575vi" ] | ||
| 1052 | stm32u575zg = [ "stm32-metapac/stm32u575zg" ] | ||
| 1053 | stm32u575zi = [ "stm32-metapac/stm32u575zi" ] | ||
| 1054 | stm32u585ai = [ "stm32-metapac/stm32u585ai" ] | ||
| 1055 | stm32u585ci = [ "stm32-metapac/stm32u585ci" ] | ||
| 1056 | stm32u585oi = [ "stm32-metapac/stm32u585oi" ] | ||
| 1057 | stm32u585qe = [ "stm32-metapac/stm32u585qe" ] | ||
| 1058 | stm32u585qi = [ "stm32-metapac/stm32u585qi" ] | ||
| 1059 | stm32u585ri = [ "stm32-metapac/stm32u585ri" ] | ||
| 1060 | stm32u585vi = [ "stm32-metapac/stm32u585vi" ] | ||
| 1061 | stm32u585ze = [ "stm32-metapac/stm32u585ze" ] | ||
| 1062 | stm32u585zi = [ "stm32-metapac/stm32u585zi" ] | ||
| 1040 | stm32wb55cc = [ "stm32-metapac/stm32wb55cc" ] | 1063 | stm32wb55cc = [ "stm32-metapac/stm32wb55cc" ] |
| 1041 | stm32wb55ce = [ "stm32-metapac/stm32wb55ce" ] | 1064 | stm32wb55ce = [ "stm32-metapac/stm32wb55ce" ] |
| 1042 | stm32wb55cg = [ "stm32-metapac/stm32wb55cg" ] | 1065 | stm32wb55cg = [ "stm32-metapac/stm32wb55cg" ] |
diff --git a/embassy-stm32/src/exti.rs b/embassy-stm32/src/exti.rs index 565b92f32..d63af76be 100644 --- a/embassy-stm32/src/exti.rs +++ b/embassy-stm32/src/exti.rs | |||
| @@ -30,11 +30,11 @@ fn cpu_regs() -> pac::exti::Exti { | |||
| 30 | EXTI | 30 | EXTI |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | #[cfg(not(any(exti_g0, exti_l5, gpio_v1)))] | 33 | #[cfg(not(any(exti_g0, exti_l5, gpio_v1, exti_u5)))] |
| 34 | fn exticr_regs() -> pac::syscfg::Syscfg { | 34 | fn exticr_regs() -> pac::syscfg::Syscfg { |
| 35 | pac::SYSCFG | 35 | pac::SYSCFG |
| 36 | } | 36 | } |
| 37 | #[cfg(any(exti_g0, exti_l5))] | 37 | #[cfg(any(exti_g0, exti_l5, exti_u5))] |
| 38 | fn exticr_regs() -> pac::exti::Exti { | 38 | fn exticr_regs() -> pac::exti::Exti { |
| 39 | EXTI | 39 | EXTI |
| 40 | } | 40 | } |
| @@ -44,9 +44,9 @@ fn exticr_regs() -> pac::afio::Afio { | |||
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | pub unsafe fn on_irq() { | 46 | pub unsafe fn on_irq() { |
| 47 | #[cfg(not(any(exti_g0, exti_l5)))] | 47 | #[cfg(not(any(exti_g0, exti_l5, exti_u5)))] |
| 48 | let bits = EXTI.pr(0).read().0; | 48 | let bits = EXTI.pr(0).read().0; |
| 49 | #[cfg(any(exti_g0, exti_l5))] | 49 | #[cfg(any(exti_g0, exti_l5, exti_u5))] |
| 50 | let bits = EXTI.rpr(0).read().0 | EXTI.fpr(0).read().0; | 50 | let bits = EXTI.rpr(0).read().0 | EXTI.fpr(0).read().0; |
| 51 | 51 | ||
| 52 | // Mask all the channels that fired. | 52 | // Mask all the channels that fired. |
| @@ -58,9 +58,9 @@ pub unsafe fn on_irq() { | |||
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | // Clear pending | 60 | // Clear pending |
| 61 | #[cfg(not(any(exti_g0, exti_l5)))] | 61 | #[cfg(not(any(exti_g0, exti_l5, exti_u5)))] |
| 62 | EXTI.pr(0).write_value(Lines(bits)); | 62 | EXTI.pr(0).write_value(Lines(bits)); |
| 63 | #[cfg(any(exti_g0, exti_l5))] | 63 | #[cfg(any(exti_g0, exti_l5, exti_u5))] |
| 64 | { | 64 | { |
| 65 | EXTI.rpr(0).write_value(Lines(bits)); | 65 | EXTI.rpr(0).write_value(Lines(bits)); |
| 66 | EXTI.fpr(0).write_value(Lines(bits)); | 66 | EXTI.fpr(0).write_value(Lines(bits)); |
| @@ -148,9 +148,9 @@ impl<'a> ExtiInputFuture<'a> { | |||
| 148 | EXTI.ftsr(0).modify(|w| w.set_line(pin, falling)); | 148 | EXTI.ftsr(0).modify(|w| w.set_line(pin, falling)); |
| 149 | 149 | ||
| 150 | // clear pending bit | 150 | // clear pending bit |
| 151 | #[cfg(not(any(exti_g0, exti_l5)))] | 151 | #[cfg(not(any(exti_g0, exti_l5, exti_u5)))] |
| 152 | EXTI.pr(0).write(|w| w.set_line(pin, true)); | 152 | EXTI.pr(0).write(|w| w.set_line(pin, true)); |
| 153 | #[cfg(any(exti_g0, exti_l5))] | 153 | #[cfg(any(exti_g0, exti_l5, exti_u5))] |
| 154 | { | 154 | { |
| 155 | EXTI.rpr(0).write(|w| w.set_line(pin, true)); | 155 | EXTI.rpr(0).write(|w| w.set_line(pin, true)); |
| 156 | EXTI.fpr(0).write(|w| w.set_line(pin, true)); | 156 | EXTI.fpr(0).write(|w| w.set_line(pin, true)); |
diff --git a/embassy-stm32/src/pwr/mod.rs b/embassy-stm32/src/pwr/mod.rs index 2577eab34..bd3d23cac 100644 --- a/embassy-stm32/src/pwr/mod.rs +++ b/embassy-stm32/src/pwr/mod.rs | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | #[cfg_attr(pwr_wl5, path = "wl5.rs")] | 4 | #[cfg_attr(pwr_wl5, path = "wl5.rs")] |
| 5 | #[cfg_attr(pwr_g0, path = "g0.rs")] | 5 | #[cfg_attr(pwr_g0, path = "g0.rs")] |
| 6 | #[cfg_attr(pwr_l1, path = "l1.rs")] | 6 | #[cfg_attr(pwr_l1, path = "l1.rs")] |
| 7 | #[cfg_attr(pwr_u5, path = "u5.rs")] | ||
| 7 | mod _version; | 8 | mod _version; |
| 8 | 9 | ||
| 9 | pub use _version::*; | 10 | pub use _version::*; |
diff --git a/embassy-stm32/src/pwr/u5.rs b/embassy-stm32/src/pwr/u5.rs new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/embassy-stm32/src/pwr/u5.rs | |||
| @@ -0,0 +1 @@ | |||
diff --git a/embassy-stm32/src/rcc/mod.rs b/embassy-stm32/src/rcc/mod.rs index 28def28ab..8db2f10ea 100644 --- a/embassy-stm32/src/rcc/mod.rs +++ b/embassy-stm32/src/rcc/mod.rs | |||
| @@ -24,19 +24,19 @@ pub struct Clocks { | |||
| 24 | #[cfg(not(rcc_g0))] | 24 | #[cfg(not(rcc_g0))] |
| 25 | pub apb2_tim: Hertz, | 25 | pub apb2_tim: Hertz, |
| 26 | 26 | ||
| 27 | #[cfg(rcc_wl5)] | 27 | #[cfg(any(rcc_wl5, rcc_u5))] |
| 28 | pub apb3: Hertz, | 28 | pub apb3: Hertz, |
| 29 | 29 | ||
| 30 | #[cfg(any(rcc_l0, rcc_l1, rcc_f0, rcc_f1, rcc_f0x0, rcc_g0))] | 30 | #[cfg(any(rcc_l0, rcc_l1, rcc_f0, rcc_f1, rcc_f0x0, rcc_g0))] |
| 31 | pub ahb: Hertz, | 31 | pub ahb: Hertz, |
| 32 | 32 | ||
| 33 | #[cfg(any(rcc_l4, rcc_f4, rcc_f7, rcc_h7, rcc_wb, rcc_wl5))] | 33 | #[cfg(any(rcc_l4, rcc_f4, rcc_f7, rcc_h7, rcc_u5, rcc_wb, rcc_wl5))] |
| 34 | pub ahb1: Hertz, | 34 | pub ahb1: Hertz, |
| 35 | 35 | ||
| 36 | #[cfg(any(rcc_l4, rcc_f4, rcc_f7, rcc_h7, rcc_wb, rcc_wl5))] | 36 | #[cfg(any(rcc_l4, rcc_f4, rcc_f7, rcc_h7, rcc_u5, rcc_wb, rcc_wl5))] |
| 37 | pub ahb2: Hertz, | 37 | pub ahb2: Hertz, |
| 38 | 38 | ||
| 39 | #[cfg(any(rcc_l4, rcc_f4, rcc_f7, rcc_h7, rcc_wb, rcc_wl5))] | 39 | #[cfg(any(rcc_l4, rcc_f4, rcc_f7, rcc_h7, rcc_u5, rcc_wb, rcc_wl5))] |
| 40 | pub ahb3: Hertz, | 40 | pub ahb3: Hertz, |
| 41 | 41 | ||
| 42 | #[cfg(any(rcc_h7))] | 42 | #[cfg(any(rcc_h7))] |
| @@ -100,6 +100,9 @@ cfg_if::cfg_if! { | |||
| 100 | } else if #[cfg(any(rcc_g0))] { | 100 | } else if #[cfg(any(rcc_g0))] { |
| 101 | mod g0; | 101 | mod g0; |
| 102 | pub use g0::*; | 102 | pub use g0::*; |
| 103 | } else if #[cfg(any(rcc_u5))] { | ||
| 104 | mod u5; | ||
| 105 | pub use u5::*; | ||
| 103 | } | 106 | } |
| 104 | } | 107 | } |
| 105 | 108 | ||
diff --git a/embassy-stm32/src/rcc/u5/mod.rs b/embassy-stm32/src/rcc/u5/mod.rs new file mode 100644 index 000000000..dbf5e8dfb --- /dev/null +++ b/embassy-stm32/src/rcc/u5/mod.rs | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | pub struct Config {} | ||
| 2 | |||
| 3 | impl Config { | ||
| 4 | pub fn new() -> Self { | ||
| 5 | Config {} | ||
| 6 | } | ||
| 7 | } | ||
| 8 | |||
| 9 | impl Default for Config { | ||
| 10 | fn default() -> Self { | ||
| 11 | Config::new() | ||
| 12 | } | ||
| 13 | } | ||
| 14 | |||
| 15 | pub unsafe fn init(_config: Config) {} | ||
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs index a6955729d..7cab10d05 100644 --- a/embassy-stm32/src/usart/mod.rs +++ b/embassy-stm32/src/usart/mod.rs | |||
| @@ -215,6 +215,7 @@ crate::pac::peripheral_pins!( | |||
| 215 | }; | 215 | }; |
| 216 | ); | 216 | ); |
| 217 | 217 | ||
| 218 | #[allow(unused)] | ||
| 218 | macro_rules! impl_dma { | 219 | macro_rules! impl_dma { |
| 219 | ($inst:ident, {dmamux: $dmamux:ident}, $signal:ident, $request:expr) => { | 220 | ($inst:ident, {dmamux: $dmamux:ident}, $signal:ident, $request:expr) => { |
| 220 | impl<T> sealed::$signal<peripherals::$inst> for T | 221 | impl<T> sealed::$signal<peripherals::$inst> for T |
diff --git a/examples/stm32l4/.cargo/config.toml b/examples/stm32l4/.cargo/config.toml index b157e3aeb..d32ca4ae9 100644 --- a/examples/stm32l4/.cargo/config.toml +++ b/examples/stm32l4/.cargo/config.toml | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | [target.'cfg(all(target_arch = "arm", target_os = "none"))'] | 1 | [target.'cfg(all(target_arch = "arm", target_os = "none"))'] |
| 2 | # replace STM32F429ZITx with your chip as listed in `probe-run --list-chips` | 2 | # replace STM32F429ZITx with your chip as listed in `probe-run --list-chips` |
| 3 | #runner = "probe-run --chip STM32L475VGT6" | 3 | #runner = "probe-run --chip STM32L475VGT6" |
| 4 | runner = "probe-run --chip STM32L475VG" | 4 | #runner = "probe-run --chip STM32L475VG" |
| 5 | runner = "probe-run --chip STM32L4S5VI" | ||
| 5 | 6 | ||
| 6 | rustflags = [ | 7 | rustflags = [ |
| 7 | # LLD (shipped with the Rust toolchain) is used as the default linker | 8 | # LLD (shipped with the Rust toolchain) is used as the default linker |
diff --git a/examples/stm32u5/.cargo/config.toml b/examples/stm32u5/.cargo/config.toml new file mode 100644 index 000000000..7f4887008 --- /dev/null +++ b/examples/stm32u5/.cargo/config.toml | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | [target.'cfg(all(target_arch = "arm", target_os = "none"))'] | ||
| 2 | # replace STM32F429ZITx with your chip as listed in `probe-run --list-chips` | ||
| 3 | runner = "probe-run --chip STM32U585AIIx" | ||
| 4 | |||
| 5 | rustflags = [ | ||
| 6 | # LLD (shipped with the Rust toolchain) is used as the default linker | ||
| 7 | "-C", "link-arg=--nmagic", | ||
| 8 | "-C", "link-arg=-Tlink.x", | ||
| 9 | "-C", "link-arg=-Tdefmt.x", | ||
| 10 | |||
| 11 | # Code-size optimizations. | ||
| 12 | "-Z", "trap-unreachable=no", | ||
| 13 | "-C", "inline-threshold=5", | ||
| 14 | "-C", "no-vectorize-loops", | ||
| 15 | ] | ||
| 16 | |||
| 17 | [build] | ||
| 18 | target = "thumbv7em-none-eabi" | ||
diff --git a/examples/stm32u5/Cargo.toml b/examples/stm32u5/Cargo.toml new file mode 100644 index 000000000..b3c3c9700 --- /dev/null +++ b/examples/stm32u5/Cargo.toml | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | [package] | ||
| 2 | authors = ["Dario Nieuwenhuis <[email protected]>"] | ||
| 3 | edition = "2018" | ||
| 4 | name = "embassy-stm32u5-examples" | ||
| 5 | version = "0.1.0" | ||
| 6 | resolver = "2" | ||
| 7 | |||
| 8 | [features] | ||
| 9 | default = [ | ||
| 10 | "defmt-default", | ||
| 11 | ] | ||
| 12 | defmt-default = [] | ||
| 13 | defmt-trace = [] | ||
| 14 | defmt-debug = [] | ||
| 15 | defmt-info = [] | ||
| 16 | defmt-warn = [] | ||
| 17 | defmt-error = [] | ||
| 18 | |||
| 19 | [dependencies] | ||
| 20 | embassy = { version = "0.1.0", path = "../../embassy", features = ["defmt", "defmt-trace"] } | ||
| 21 | embassy-traits = { version = "0.1.0", path = "../../embassy-traits", features = ["defmt"] } | ||
| 22 | embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "defmt-trace", "unstable-pac", "stm32u585ai", "memory-x" ] } | ||
| 23 | embassy-hal-common = {version = "0.1.0", path = "../../embassy-hal-common" } | ||
| 24 | |||
| 25 | defmt = "0.2.3" | ||
| 26 | defmt-rtt = "0.2.0" | ||
| 27 | |||
| 28 | cortex-m = "0.7.3" | ||
| 29 | cortex-m-rt = "0.7.0" | ||
| 30 | embedded-hal = "0.2.6" | ||
| 31 | panic-probe = { version = "0.2.0", features = ["print-defmt"] } | ||
| 32 | futures = { version = "0.3.17", default-features = false, features = ["async-await"] } | ||
| 33 | rtt-target = { version = "0.3.1", features = ["cortex-m"] } | ||
| 34 | heapless = { version = "0.7.5", default-features = false } | ||
| 35 | |||
| 36 | micromath = "2.0.0" | ||
| 37 | |||
diff --git a/examples/stm32u5/src/bin/boot.rs b/examples/stm32u5/src/bin/boot.rs new file mode 100644 index 000000000..91eff735d --- /dev/null +++ b/examples/stm32u5/src/bin/boot.rs | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | #![no_std] | ||
| 2 | #![no_main] | ||
| 3 | #![feature(type_alias_impl_trait)] | ||
| 4 | |||
| 5 | #[path = "../example_common.rs"] | ||
| 6 | mod example_common; | ||
| 7 | use example_common::*; | ||
| 8 | |||
| 9 | use embassy_stm32 as _; | ||
| 10 | |||
| 11 | #[cortex_m_rt::entry] | ||
| 12 | fn main() -> ! { | ||
| 13 | info!("Hello World!"); | ||
| 14 | |||
| 15 | loop {} | ||
| 16 | } | ||
diff --git a/examples/stm32u5/src/example_common.rs b/examples/stm32u5/src/example_common.rs new file mode 100644 index 000000000..54d633837 --- /dev/null +++ b/examples/stm32u5/src/example_common.rs | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | #![macro_use] | ||
| 2 | |||
| 3 | use defmt_rtt as _; // global logger | ||
| 4 | use panic_probe as _; | ||
| 5 | |||
| 6 | pub use defmt::*; | ||
| 7 | |||
| 8 | use core::sync::atomic::{AtomicUsize, Ordering}; | ||
| 9 | |||
| 10 | defmt::timestamp! {"{=u64}", { | ||
| 11 | static COUNT: AtomicUsize = AtomicUsize::new(0); | ||
| 12 | // NOTE(no-CAS) `timestamps` runs with interrupts disabled | ||
| 13 | let n = COUNT.load(Ordering::Relaxed); | ||
| 14 | COUNT.store(n + 1, Ordering::Relaxed); | ||
| 15 | n as u64 | ||
| 16 | } | ||
| 17 | } | ||
diff --git a/stm32-data b/stm32-data | |||
| Subproject 8d3ca7adc6eac3d648bf0c33509e678beaba105 | Subproject ed9819e91fed1da71bc5c4b994c7f03a4d66d84 | ||
diff --git a/stm32-gen-features/src/lib.rs b/stm32-gen-features/src/lib.rs index 381fd1c17..756f4da83 100644 --- a/stm32-gen-features/src/lib.rs +++ b/stm32-gen-features/src/lib.rs | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | use std::{iter::FilterMap, path::Path, slice::Iter}; | 3 | use std::{iter::FilterMap, path::Path, slice::Iter}; |
| 4 | 4 | ||
| 5 | const SUPPORTED_FAMILIES: [&str; 11] = [ | 5 | const SUPPORTED_FAMILIES: [&str; 12] = [ |
| 6 | "stm32f0", | 6 | "stm32f0", |
| 7 | "stm32f1", | 7 | "stm32f1", |
| 8 | "stm32f4", | 8 | "stm32f4", |
| @@ -12,6 +12,7 @@ const SUPPORTED_FAMILIES: [&str; 11] = [ | |||
| 12 | "stm32l1", | 12 | "stm32l1", |
| 13 | "stm32l4", | 13 | "stm32l4", |
| 14 | "stm32h7", | 14 | "stm32h7", |
| 15 | "stm32u5", | ||
| 15 | "stm32wb55", | 16 | "stm32wb55", |
| 16 | "stm32wl55", | 17 | "stm32wl55", |
| 17 | ]; | 18 | ]; |
diff --git a/stm32-metapac-gen/src/lib.rs b/stm32-metapac-gen/src/lib.rs index 79dd734ce..3480ac364 100644 --- a/stm32-metapac-gen/src/lib.rs +++ b/stm32-metapac-gen/src/lib.rs | |||
| @@ -150,6 +150,9 @@ macro_rules! peripheral_count {{ | |||
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | fn make_dma_channel_counts(out: &mut String, data: &BTreeMap<String, u8>) { | 152 | fn make_dma_channel_counts(out: &mut String, data: &BTreeMap<String, u8>) { |
| 153 | if data.len() == 0 { | ||
| 154 | return; | ||
| 155 | } | ||
| 153 | write!( | 156 | write!( |
| 154 | out, | 157 | out, |
| 155 | "#[macro_export] | 158 | "#[macro_export] |
diff --git a/stm32-metapac/Cargo.toml b/stm32-metapac/Cargo.toml index 3b16949c6..1395e7f60 100644 --- a/stm32-metapac/Cargo.toml +++ b/stm32-metapac/Cargo.toml | |||
| @@ -1215,6 +1215,29 @@ stm32l562qe = [] | |||
| 1215 | stm32l562re = [] | 1215 | stm32l562re = [] |
| 1216 | stm32l562ve = [] | 1216 | stm32l562ve = [] |
| 1217 | stm32l562ze = [] | 1217 | stm32l562ze = [] |
| 1218 | stm32u575ag = [] | ||
| 1219 | stm32u575ai = [] | ||
| 1220 | stm32u575cg = [] | ||
| 1221 | stm32u575ci = [] | ||
| 1222 | stm32u575og = [] | ||
| 1223 | stm32u575oi = [] | ||
| 1224 | stm32u575qg = [] | ||
| 1225 | stm32u575qi = [] | ||
| 1226 | stm32u575rg = [] | ||
| 1227 | stm32u575ri = [] | ||
| 1228 | stm32u575vg = [] | ||
| 1229 | stm32u575vi = [] | ||
| 1230 | stm32u575zg = [] | ||
| 1231 | stm32u575zi = [] | ||
| 1232 | stm32u585ai = [] | ||
| 1233 | stm32u585ci = [] | ||
| 1234 | stm32u585oi = [] | ||
| 1235 | stm32u585qe = [] | ||
| 1236 | stm32u585qi = [] | ||
| 1237 | stm32u585ri = [] | ||
| 1238 | stm32u585vi = [] | ||
| 1239 | stm32u585ze = [] | ||
| 1240 | stm32u585zi = [] | ||
| 1218 | stm32wb10cc = [] | 1241 | stm32wb10cc = [] |
| 1219 | stm32wb15cc = [] | 1242 | stm32wb15cc = [] |
| 1220 | stm32wb30ce = [] | 1243 | stm32wb30ce = [] |
