aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob McWhirter <[email protected]>2021-11-02 12:03:56 -0400
committerBob McWhirter <[email protected]>2021-11-02 12:05:24 -0400
commitf12b70535bc5546784a8eb4ee8ff678b45f29c0c (patch)
treed82d1159f99d1f8ad8665c6b66df0dde60a28fdb
parent3dcf899babff5b735b1f1a5a99a9005ce06f517f (diff)
Adjust for STM32U5.
-rw-r--r--embassy-stm32/Cargo.toml23
-rw-r--r--embassy-stm32/src/exti.rs16
-rw-r--r--embassy-stm32/src/pwr/mod.rs1
-rw-r--r--embassy-stm32/src/pwr/u5.rs0
-rw-r--r--embassy-stm32/src/rcc/mod.rs11
-rw-r--r--embassy-stm32/src/rcc/u5/mod.rs15
-rw-r--r--examples/stm32l4/.cargo/config.toml3
m---------stm32-data0
-rw-r--r--stm32-gen-features/src/lib.rs3
-rw-r--r--stm32-metapac-gen/src/lib.rs3
-rw-r--r--stm32-metapac/Cargo.toml23
11 files changed, 84 insertions, 14 deletions
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index ecad19751..206dbb148 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -1037,6 +1037,29 @@ stm32l4s7zi = [ "stm32-metapac/stm32l4s7zi" ]
1037stm32l4s9ai = [ "stm32-metapac/stm32l4s9ai" ] 1037stm32l4s9ai = [ "stm32-metapac/stm32l4s9ai" ]
1038stm32l4s9vi = [ "stm32-metapac/stm32l4s9vi" ] 1038stm32l4s9vi = [ "stm32-metapac/stm32l4s9vi" ]
1039stm32l4s9zi = [ "stm32-metapac/stm32l4s9zi" ] 1039stm32l4s9zi = [ "stm32-metapac/stm32l4s9zi" ]
1040stm32u575ag = [ "stm32-metapac/stm32u575ag" ]
1041stm32u575ai = [ "stm32-metapac/stm32u575ai" ]
1042stm32u575cg = [ "stm32-metapac/stm32u575cg" ]
1043stm32u575ci = [ "stm32-metapac/stm32u575ci" ]
1044stm32u575og = [ "stm32-metapac/stm32u575og" ]
1045stm32u575oi = [ "stm32-metapac/stm32u575oi" ]
1046stm32u575qg = [ "stm32-metapac/stm32u575qg" ]
1047stm32u575qi = [ "stm32-metapac/stm32u575qi" ]
1048stm32u575rg = [ "stm32-metapac/stm32u575rg" ]
1049stm32u575ri = [ "stm32-metapac/stm32u575ri" ]
1050stm32u575vg = [ "stm32-metapac/stm32u575vg" ]
1051stm32u575vi = [ "stm32-metapac/stm32u575vi" ]
1052stm32u575zg = [ "stm32-metapac/stm32u575zg" ]
1053stm32u575zi = [ "stm32-metapac/stm32u575zi" ]
1054stm32u585ai = [ "stm32-metapac/stm32u585ai" ]
1055stm32u585ci = [ "stm32-metapac/stm32u585ci" ]
1056stm32u585oi = [ "stm32-metapac/stm32u585oi" ]
1057stm32u585qe = [ "stm32-metapac/stm32u585qe" ]
1058stm32u585qi = [ "stm32-metapac/stm32u585qi" ]
1059stm32u585ri = [ "stm32-metapac/stm32u585ri" ]
1060stm32u585vi = [ "stm32-metapac/stm32u585vi" ]
1061stm32u585ze = [ "stm32-metapac/stm32u585ze" ]
1062stm32u585zi = [ "stm32-metapac/stm32u585zi" ]
1040stm32wb55cc = [ "stm32-metapac/stm32wb55cc" ] 1063stm32wb55cc = [ "stm32-metapac/stm32wb55cc" ]
1041stm32wb55ce = [ "stm32-metapac/stm32wb55ce" ] 1064stm32wb55ce = [ "stm32-metapac/stm32wb55ce" ]
1042stm32wb55cg = [ "stm32-metapac/stm32wb55cg" ] 1065stm32wb55cg = [ "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)))]
34fn exticr_regs() -> pac::syscfg::Syscfg { 34fn 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))]
38fn exticr_regs() -> pac::exti::Exti { 38fn 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
46pub unsafe fn on_irq() { 46pub 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")]
7mod _version; 8mod _version;
8 9
9pub use _version::*; 10pub use _version::*;
diff --git a/embassy-stm32/src/pwr/u5.rs b/embassy-stm32/src/pwr/u5.rs
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/embassy-stm32/src/pwr/u5.rs
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..a713be499
--- /dev/null
+++ b/embassy-stm32/src/rcc/u5/mod.rs
@@ -0,0 +1,15 @@
1pub struct Config {}
2
3impl Config {
4 pub fn new() -> Self {
5 Config {}
6 }
7}
8
9impl Default for Config {
10 fn default() -> Self {
11 Config::new()
12 }
13}
14
15pub unsafe fn init(config: Config) {}
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"
4runner = "probe-run --chip STM32L475VG" 4#runner = "probe-run --chip STM32L475VG"
5runner = "probe-run --chip STM32L4S5VI"
5 6
6rustflags = [ 7rustflags = [
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/stm32-data b/stm32-data
Subproject 8d3ca7adc6eac3d648bf0c33509e678beaba105 Subproject bd731709fb98935a632ff63ff0ae8e607397f0f
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
3use std::{iter::FilterMap, path::Path, slice::Iter}; 3use std::{iter::FilterMap, path::Path, slice::Iter};
4 4
5const SUPPORTED_FAMILIES: [&str; 11] = [ 5const 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
152fn make_dma_channel_counts(out: &mut String, data: &BTreeMap<String, u8>) { 152fn 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 = []
1215stm32l562re = [] 1215stm32l562re = []
1216stm32l562ve = [] 1216stm32l562ve = []
1217stm32l562ze = [] 1217stm32l562ze = []
1218stm32u575ag = []
1219stm32u575ai = []
1220stm32u575cg = []
1221stm32u575ci = []
1222stm32u575og = []
1223stm32u575oi = []
1224stm32u575qg = []
1225stm32u575qi = []
1226stm32u575rg = []
1227stm32u575ri = []
1228stm32u575vg = []
1229stm32u575vi = []
1230stm32u575zg = []
1231stm32u575zi = []
1232stm32u585ai = []
1233stm32u585ci = []
1234stm32u585oi = []
1235stm32u585qe = []
1236stm32u585qi = []
1237stm32u585ri = []
1238stm32u585vi = []
1239stm32u585ze = []
1240stm32u585zi = []
1218stm32wb10cc = [] 1241stm32wb10cc = []
1219stm32wb15cc = [] 1242stm32wb15cc = []
1220stm32wb30ce = [] 1243stm32wb30ce = []