aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-04-23 23:47:34 +0200
committerDario Nieuwenhuis <[email protected]>2021-04-23 23:47:34 +0200
commit6ba915a3082489bbc77440867d2a7d126ca98352 (patch)
tree94666dedc2e9e8383dc75fab005ddffecc4dee8d
parent29b5bae1d19f547a29e55323ec03fda82a837fbf (diff)
Codegen GPIO pins
-rw-r--r--embassy-stm32/gen.py37
-rw-r--r--embassy-stm32/src/chip/mod.rs298
-rw-r--r--embassy-stm32/src/chip/stm32f401cb.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401cc.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401cd.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401ce.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401rb.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401rc.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401rd.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401re.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401vb.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401vc.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401vd.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f401ve.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f405oe.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f405og.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f405rg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f405vg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f405zg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f407ie.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f407ig.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f407ve.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f407vg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f407ze.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f407zg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f410c8.rs80
-rw-r--r--embassy-stm32/src/chip/stm32f410cb.rs80
-rw-r--r--embassy-stm32/src/chip/stm32f410r8.rs80
-rw-r--r--embassy-stm32/src/chip/stm32f410rb.rs80
-rw-r--r--embassy-stm32/src/chip/stm32f410t8.rs80
-rw-r--r--embassy-stm32/src/chip/stm32f410tb.rs80
-rw-r--r--embassy-stm32/src/chip/stm32f411cc.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f411ce.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f411rc.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f411re.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f411vc.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f411ve.rs114
-rw-r--r--embassy-stm32/src/chip/stm32f412ce.rs81
-rw-r--r--embassy-stm32/src/chip/stm32f412cg.rs81
-rw-r--r--embassy-stm32/src/chip/stm32f412re.rs98
-rw-r--r--embassy-stm32/src/chip/stm32f412rg.rs98
-rw-r--r--embassy-stm32/src/chip/stm32f412ve.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f412vg.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f412ze.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f412zg.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f413cg.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f413ch.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f413mg.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f413mh.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f413rg.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f413rh.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f413vg.rs150
-rw-r--r--embassy-stm32/src/chip/stm32f413vh.rs150
-rw-r--r--embassy-stm32/src/chip/stm32f413zg.rs150
-rw-r--r--embassy-stm32/src/chip/stm32f413zh.rs150
-rw-r--r--embassy-stm32/src/chip/stm32f415og.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f415rg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f415vg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f415zg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f417ie.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f417ig.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f417ve.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f417vg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f417ze.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f417zg.rs166
-rw-r--r--embassy-stm32/src/chip/stm32f423ch.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f423mh.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f423rh.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f423vh.rs150
-rw-r--r--embassy-stm32/src/chip/stm32f423zh.rs150
-rw-r--r--embassy-stm32/src/chip/stm32f427ag.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f427ai.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f427ig.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f427ii.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f427vg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f427vi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f427zg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f427zi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ag.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ai.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429be.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429bg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429bi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ie.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ig.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ii.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ne.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ng.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ni.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ve.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429vg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429vi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429ze.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429zg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f429zi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f437ai.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f437ig.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f437ii.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f437vg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f437vi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f437zg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f437zi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f439ai.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f439bg.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f439bi.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f439ig.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f439ii.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f439ng.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f439ni.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f439vg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f439vi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f439zg.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f439zi.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f446mc.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f446me.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f446rc.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f446re.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f446vc.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f446ve.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f446zc.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f446ze.rs149
-rw-r--r--embassy-stm32/src/chip/stm32f469ae.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469ag.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469ai.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469be.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469bg.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469bi.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469ie.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469ig.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469ii.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469ne.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469ng.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469ni.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f469ve.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469vg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469vi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469ze.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469zg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f469zi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f479ag.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479ai.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479bg.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479bi.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479ig.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479ii.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479ng.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479ni.rs201
-rw-r--r--embassy-stm32/src/chip/stm32f479vg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f479vi.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f479zg.rs200
-rw-r--r--embassy-stm32/src/chip/stm32f479zi.rs200
-rw-r--r--embassy-stm32/src/gpio.rs59
-rw-r--r--embassy-stm32/src/lib.rs10
m---------embassy-stm32/stm32-data0
154 files changed, 24629 insertions, 805 deletions
diff --git a/embassy-stm32/gen.py b/embassy-stm32/gen.py
index 596b57a17..ccf5467ae 100644
--- a/embassy-stm32/gen.py
+++ b/embassy-stm32/gen.py
@@ -48,12 +48,35 @@ with open('Cargo.toml', 'w') as f:
48# ========= Generate per-chip mod 48# ========= Generate per-chip mod
49 49
50for chip in chips.values(): 50for chip in chips.values():
51 print(f'generating {chip["name"]}')
51 peripherals = [] 52 peripherals = []
53 impls = []
54 pins = set()
55
56 # TODO this should probably come from the yamls?
57 # We don't want to hardcode the EXTI peripheral addr
52 peripherals.extend((f'EXTI{x}' for x in range(16))) 58 peripherals.extend((f'EXTI{x}' for x in range(16)))
53 59
54 # TODO get the number of ports from the YAML when stm32-data includes it 60 gpio_base = chip['peripherals']['GPIOA']['address']
55 for port in 'ABCD': 61 gpio_stride = 0x400
56 peripherals.extend((f'P{port}{x}' for x in range(16))) 62
63 for (name, peri) in chip['peripherals'].items():
64 if name.startswith('GPIO'):
65 port = name[4:]
66 port_num = ord(port) - ord('A')
67
68 assert peri['address'] == gpio_base + gpio_stride*port_num
69
70 for pin_num in range(16):
71 pin = f'P{port}{pin_num}'
72 pins.add(pin)
73 peripherals.append(pin)
74 impls.append(
75 f'impl_gpio_pin!({pin}, {port_num}, {pin_num}, EXTI{pin_num});')
76 continue
77
78 # TODO maybe we should only autogenerate the known ones...??
79 peripherals.append(name)
57 80
58 with open(f'src/chip/{chip["name"]}.rs', 'w') as f: 81 with open(f'src/chip/{chip["name"]}.rs', 'w') as f:
59 # TODO uart etc 82 # TODO uart etc
@@ -63,7 +86,15 @@ for chip in chips.values():
63 f.write(f""" 86 f.write(f"""
64 use embassy_extras::peripherals; 87 use embassy_extras::peripherals;
65 peripherals!({','.join(peripherals)}); 88 peripherals!({','.join(peripherals)});
89 pub const GPIO_BASE: usize = 0x{gpio_base:x};
90 pub const GPIO_STRIDE: usize = 0x{gpio_stride:x};
66 """) 91 """)
92 for i in impls:
93 f.write(i)
67 94
68 95
69# TODO generate GPIO AF map mods 96# TODO generate GPIO AF map mods
97
98
99# format
100os.system('rustfmt src/chip/*')
diff --git a/embassy-stm32/src/chip/mod.rs b/embassy-stm32/src/chip/mod.rs
index 919564337..c3cf0502a 100644
--- a/embassy-stm32/src/chip/mod.rs
+++ b/embassy-stm32/src/chip/mod.rs
@@ -1,151 +1,151 @@
1#[cfg_attr(feature="stm32f401cb", path="stm32f401cb.rs")] 1#[cfg_attr(feature = "stm32f401cb", path = "stm32f401cb.rs")]
2#[cfg_attr(feature="stm32f401cc", path="stm32f401cc.rs")] 2#[cfg_attr(feature = "stm32f401cc", path = "stm32f401cc.rs")]
3#[cfg_attr(feature="stm32f401cd", path="stm32f401cd.rs")] 3#[cfg_attr(feature = "stm32f401cd", path = "stm32f401cd.rs")]
4#[cfg_attr(feature="stm32f401ce", path="stm32f401ce.rs")] 4#[cfg_attr(feature = "stm32f401ce", path = "stm32f401ce.rs")]
5#[cfg_attr(feature="stm32f401rb", path="stm32f401rb.rs")] 5#[cfg_attr(feature = "stm32f401rb", path = "stm32f401rb.rs")]
6#[cfg_attr(feature="stm32f401rc", path="stm32f401rc.rs")] 6#[cfg_attr(feature = "stm32f401rc", path = "stm32f401rc.rs")]
7#[cfg_attr(feature="stm32f401rd", path="stm32f401rd.rs")] 7#[cfg_attr(feature = "stm32f401rd", path = "stm32f401rd.rs")]
8#[cfg_attr(feature="stm32f401re", path="stm32f401re.rs")] 8#[cfg_attr(feature = "stm32f401re", path = "stm32f401re.rs")]
9#[cfg_attr(feature="stm32f401vb", path="stm32f401vb.rs")] 9#[cfg_attr(feature = "stm32f401vb", path = "stm32f401vb.rs")]
10#[cfg_attr(feature="stm32f401vc", path="stm32f401vc.rs")] 10#[cfg_attr(feature = "stm32f401vc", path = "stm32f401vc.rs")]
11#[cfg_attr(feature="stm32f401vd", path="stm32f401vd.rs")] 11#[cfg_attr(feature = "stm32f401vd", path = "stm32f401vd.rs")]
12#[cfg_attr(feature="stm32f401ve", path="stm32f401ve.rs")] 12#[cfg_attr(feature = "stm32f401ve", path = "stm32f401ve.rs")]
13#[cfg_attr(feature="stm32f405oe", path="stm32f405oe.rs")] 13#[cfg_attr(feature = "stm32f405oe", path = "stm32f405oe.rs")]
14#[cfg_attr(feature="stm32f405og", path="stm32f405og.rs")] 14#[cfg_attr(feature = "stm32f405og", path = "stm32f405og.rs")]
15#[cfg_attr(feature="stm32f405rg", path="stm32f405rg.rs")] 15#[cfg_attr(feature = "stm32f405rg", path = "stm32f405rg.rs")]
16#[cfg_attr(feature="stm32f405vg", path="stm32f405vg.rs")] 16#[cfg_attr(feature = "stm32f405vg", path = "stm32f405vg.rs")]
17#[cfg_attr(feature="stm32f405zg", path="stm32f405zg.rs")] 17#[cfg_attr(feature = "stm32f405zg", path = "stm32f405zg.rs")]
18#[cfg_attr(feature="stm32f407ie", path="stm32f407ie.rs")] 18#[cfg_attr(feature = "stm32f407ie", path = "stm32f407ie.rs")]
19#[cfg_attr(feature="stm32f407ig", path="stm32f407ig.rs")] 19#[cfg_attr(feature = "stm32f407ig", path = "stm32f407ig.rs")]
20#[cfg_attr(feature="stm32f407ve", path="stm32f407ve.rs")] 20#[cfg_attr(feature = "stm32f407ve", path = "stm32f407ve.rs")]
21#[cfg_attr(feature="stm32f407vg", path="stm32f407vg.rs")] 21#[cfg_attr(feature = "stm32f407vg", path = "stm32f407vg.rs")]
22#[cfg_attr(feature="stm32f407ze", path="stm32f407ze.rs")] 22#[cfg_attr(feature = "stm32f407ze", path = "stm32f407ze.rs")]
23#[cfg_attr(feature="stm32f407zg", path="stm32f407zg.rs")] 23#[cfg_attr(feature = "stm32f407zg", path = "stm32f407zg.rs")]
24#[cfg_attr(feature="stm32f410c8", path="stm32f410c8.rs")] 24#[cfg_attr(feature = "stm32f410c8", path = "stm32f410c8.rs")]
25#[cfg_attr(feature="stm32f410cb", path="stm32f410cb.rs")] 25#[cfg_attr(feature = "stm32f410cb", path = "stm32f410cb.rs")]
26#[cfg_attr(feature="stm32f410r8", path="stm32f410r8.rs")] 26#[cfg_attr(feature = "stm32f410r8", path = "stm32f410r8.rs")]
27#[cfg_attr(feature="stm32f410rb", path="stm32f410rb.rs")] 27#[cfg_attr(feature = "stm32f410rb", path = "stm32f410rb.rs")]
28#[cfg_attr(feature="stm32f410t8", path="stm32f410t8.rs")] 28#[cfg_attr(feature = "stm32f410t8", path = "stm32f410t8.rs")]
29#[cfg_attr(feature="stm32f410tb", path="stm32f410tb.rs")] 29#[cfg_attr(feature = "stm32f410tb", path = "stm32f410tb.rs")]
30#[cfg_attr(feature="stm32f411cc", path="stm32f411cc.rs")] 30#[cfg_attr(feature = "stm32f411cc", path = "stm32f411cc.rs")]
31#[cfg_attr(feature="stm32f411ce", path="stm32f411ce.rs")] 31#[cfg_attr(feature = "stm32f411ce", path = "stm32f411ce.rs")]
32#[cfg_attr(feature="stm32f411rc", path="stm32f411rc.rs")] 32#[cfg_attr(feature = "stm32f411rc", path = "stm32f411rc.rs")]
33#[cfg_attr(feature="stm32f411re", path="stm32f411re.rs")] 33#[cfg_attr(feature = "stm32f411re", path = "stm32f411re.rs")]
34#[cfg_attr(feature="stm32f411vc", path="stm32f411vc.rs")] 34#[cfg_attr(feature = "stm32f411vc", path = "stm32f411vc.rs")]
35#[cfg_attr(feature="stm32f411ve", path="stm32f411ve.rs")] 35#[cfg_attr(feature = "stm32f411ve", path = "stm32f411ve.rs")]
36#[cfg_attr(feature="stm32f412ce", path="stm32f412ce.rs")] 36#[cfg_attr(feature = "stm32f412ce", path = "stm32f412ce.rs")]
37#[cfg_attr(feature="stm32f412cg", path="stm32f412cg.rs")] 37#[cfg_attr(feature = "stm32f412cg", path = "stm32f412cg.rs")]
38#[cfg_attr(feature="stm32f412re", path="stm32f412re.rs")] 38#[cfg_attr(feature = "stm32f412re", path = "stm32f412re.rs")]
39#[cfg_attr(feature="stm32f412rg", path="stm32f412rg.rs")] 39#[cfg_attr(feature = "stm32f412rg", path = "stm32f412rg.rs")]
40#[cfg_attr(feature="stm32f412ve", path="stm32f412ve.rs")] 40#[cfg_attr(feature = "stm32f412ve", path = "stm32f412ve.rs")]
41#[cfg_attr(feature="stm32f412vg", path="stm32f412vg.rs")] 41#[cfg_attr(feature = "stm32f412vg", path = "stm32f412vg.rs")]
42#[cfg_attr(feature="stm32f412ze", path="stm32f412ze.rs")] 42#[cfg_attr(feature = "stm32f412ze", path = "stm32f412ze.rs")]
43#[cfg_attr(feature="stm32f412zg", path="stm32f412zg.rs")] 43#[cfg_attr(feature = "stm32f412zg", path = "stm32f412zg.rs")]
44#[cfg_attr(feature="stm32f413cg", path="stm32f413cg.rs")] 44#[cfg_attr(feature = "stm32f413cg", path = "stm32f413cg.rs")]
45#[cfg_attr(feature="stm32f413ch", path="stm32f413ch.rs")] 45#[cfg_attr(feature = "stm32f413ch", path = "stm32f413ch.rs")]
46#[cfg_attr(feature="stm32f413mg", path="stm32f413mg.rs")] 46#[cfg_attr(feature = "stm32f413mg", path = "stm32f413mg.rs")]
47#[cfg_attr(feature="stm32f413mh", path="stm32f413mh.rs")] 47#[cfg_attr(feature = "stm32f413mh", path = "stm32f413mh.rs")]
48#[cfg_attr(feature="stm32f413rg", path="stm32f413rg.rs")] 48#[cfg_attr(feature = "stm32f413rg", path = "stm32f413rg.rs")]
49#[cfg_attr(feature="stm32f413rh", path="stm32f413rh.rs")] 49#[cfg_attr(feature = "stm32f413rh", path = "stm32f413rh.rs")]
50#[cfg_attr(feature="stm32f413vg", path="stm32f413vg.rs")] 50#[cfg_attr(feature = "stm32f413vg", path = "stm32f413vg.rs")]
51#[cfg_attr(feature="stm32f413vh", path="stm32f413vh.rs")] 51#[cfg_attr(feature = "stm32f413vh", path = "stm32f413vh.rs")]
52#[cfg_attr(feature="stm32f413zg", path="stm32f413zg.rs")] 52#[cfg_attr(feature = "stm32f413zg", path = "stm32f413zg.rs")]
53#[cfg_attr(feature="stm32f413zh", path="stm32f413zh.rs")] 53#[cfg_attr(feature = "stm32f413zh", path = "stm32f413zh.rs")]
54#[cfg_attr(feature="stm32f415og", path="stm32f415og.rs")] 54#[cfg_attr(feature = "stm32f415og", path = "stm32f415og.rs")]
55#[cfg_attr(feature="stm32f415rg", path="stm32f415rg.rs")] 55#[cfg_attr(feature = "stm32f415rg", path = "stm32f415rg.rs")]
56#[cfg_attr(feature="stm32f415vg", path="stm32f415vg.rs")] 56#[cfg_attr(feature = "stm32f415vg", path = "stm32f415vg.rs")]
57#[cfg_attr(feature="stm32f415zg", path="stm32f415zg.rs")] 57#[cfg_attr(feature = "stm32f415zg", path = "stm32f415zg.rs")]
58#[cfg_attr(feature="stm32f417ie", path="stm32f417ie.rs")] 58#[cfg_attr(feature = "stm32f417ie", path = "stm32f417ie.rs")]
59#[cfg_attr(feature="stm32f417ig", path="stm32f417ig.rs")] 59#[cfg_attr(feature = "stm32f417ig", path = "stm32f417ig.rs")]
60#[cfg_attr(feature="stm32f417ve", path="stm32f417ve.rs")] 60#[cfg_attr(feature = "stm32f417ve", path = "stm32f417ve.rs")]
61#[cfg_attr(feature="stm32f417vg", path="stm32f417vg.rs")] 61#[cfg_attr(feature = "stm32f417vg", path = "stm32f417vg.rs")]
62#[cfg_attr(feature="stm32f417ze", path="stm32f417ze.rs")] 62#[cfg_attr(feature = "stm32f417ze", path = "stm32f417ze.rs")]
63#[cfg_attr(feature="stm32f417zg", path="stm32f417zg.rs")] 63#[cfg_attr(feature = "stm32f417zg", path = "stm32f417zg.rs")]
64#[cfg_attr(feature="stm32f423ch", path="stm32f423ch.rs")] 64#[cfg_attr(feature = "stm32f423ch", path = "stm32f423ch.rs")]
65#[cfg_attr(feature="stm32f423mh", path="stm32f423mh.rs")] 65#[cfg_attr(feature = "stm32f423mh", path = "stm32f423mh.rs")]
66#[cfg_attr(feature="stm32f423rh", path="stm32f423rh.rs")] 66#[cfg_attr(feature = "stm32f423rh", path = "stm32f423rh.rs")]
67#[cfg_attr(feature="stm32f423vh", path="stm32f423vh.rs")] 67#[cfg_attr(feature = "stm32f423vh", path = "stm32f423vh.rs")]
68#[cfg_attr(feature="stm32f423zh", path="stm32f423zh.rs")] 68#[cfg_attr(feature = "stm32f423zh", path = "stm32f423zh.rs")]
69#[cfg_attr(feature="stm32f427ag", path="stm32f427ag.rs")] 69#[cfg_attr(feature = "stm32f427ag", path = "stm32f427ag.rs")]
70#[cfg_attr(feature="stm32f427ai", path="stm32f427ai.rs")] 70#[cfg_attr(feature = "stm32f427ai", path = "stm32f427ai.rs")]
71#[cfg_attr(feature="stm32f427ig", path="stm32f427ig.rs")] 71#[cfg_attr(feature = "stm32f427ig", path = "stm32f427ig.rs")]
72#[cfg_attr(feature="stm32f427ii", path="stm32f427ii.rs")] 72#[cfg_attr(feature = "stm32f427ii", path = "stm32f427ii.rs")]
73#[cfg_attr(feature="stm32f427vg", path="stm32f427vg.rs")] 73#[cfg_attr(feature = "stm32f427vg", path = "stm32f427vg.rs")]
74#[cfg_attr(feature="stm32f427vi", path="stm32f427vi.rs")] 74#[cfg_attr(feature = "stm32f427vi", path = "stm32f427vi.rs")]
75#[cfg_attr(feature="stm32f427zg", path="stm32f427zg.rs")] 75#[cfg_attr(feature = "stm32f427zg", path = "stm32f427zg.rs")]
76#[cfg_attr(feature="stm32f427zi", path="stm32f427zi.rs")] 76#[cfg_attr(feature = "stm32f427zi", path = "stm32f427zi.rs")]
77#[cfg_attr(feature="stm32f429ag", path="stm32f429ag.rs")] 77#[cfg_attr(feature = "stm32f429ag", path = "stm32f429ag.rs")]
78#[cfg_attr(feature="stm32f429ai", path="stm32f429ai.rs")] 78#[cfg_attr(feature = "stm32f429ai", path = "stm32f429ai.rs")]
79#[cfg_attr(feature="stm32f429be", path="stm32f429be.rs")] 79#[cfg_attr(feature = "stm32f429be", path = "stm32f429be.rs")]
80#[cfg_attr(feature="stm32f429bg", path="stm32f429bg.rs")] 80#[cfg_attr(feature = "stm32f429bg", path = "stm32f429bg.rs")]
81#[cfg_attr(feature="stm32f429bi", path="stm32f429bi.rs")] 81#[cfg_attr(feature = "stm32f429bi", path = "stm32f429bi.rs")]
82#[cfg_attr(feature="stm32f429ie", path="stm32f429ie.rs")] 82#[cfg_attr(feature = "stm32f429ie", path = "stm32f429ie.rs")]
83#[cfg_attr(feature="stm32f429ig", path="stm32f429ig.rs")] 83#[cfg_attr(feature = "stm32f429ig", path = "stm32f429ig.rs")]
84#[cfg_attr(feature="stm32f429ii", path="stm32f429ii.rs")] 84#[cfg_attr(feature = "stm32f429ii", path = "stm32f429ii.rs")]
85#[cfg_attr(feature="stm32f429ne", path="stm32f429ne.rs")] 85#[cfg_attr(feature = "stm32f429ne", path = "stm32f429ne.rs")]
86#[cfg_attr(feature="stm32f429ng", path="stm32f429ng.rs")] 86#[cfg_attr(feature = "stm32f429ng", path = "stm32f429ng.rs")]
87#[cfg_attr(feature="stm32f429ni", path="stm32f429ni.rs")] 87#[cfg_attr(feature = "stm32f429ni", path = "stm32f429ni.rs")]
88#[cfg_attr(feature="stm32f429ve", path="stm32f429ve.rs")] 88#[cfg_attr(feature = "stm32f429ve", path = "stm32f429ve.rs")]
89#[cfg_attr(feature="stm32f429vg", path="stm32f429vg.rs")] 89#[cfg_attr(feature = "stm32f429vg", path = "stm32f429vg.rs")]
90#[cfg_attr(feature="stm32f429vi", path="stm32f429vi.rs")] 90#[cfg_attr(feature = "stm32f429vi", path = "stm32f429vi.rs")]
91#[cfg_attr(feature="stm32f429ze", path="stm32f429ze.rs")] 91#[cfg_attr(feature = "stm32f429ze", path = "stm32f429ze.rs")]
92#[cfg_attr(feature="stm32f429zg", path="stm32f429zg.rs")] 92#[cfg_attr(feature = "stm32f429zg", path = "stm32f429zg.rs")]
93#[cfg_attr(feature="stm32f429zi", path="stm32f429zi.rs")] 93#[cfg_attr(feature = "stm32f429zi", path = "stm32f429zi.rs")]
94#[cfg_attr(feature="stm32f437ai", path="stm32f437ai.rs")] 94#[cfg_attr(feature = "stm32f437ai", path = "stm32f437ai.rs")]
95#[cfg_attr(feature="stm32f437ig", path="stm32f437ig.rs")] 95#[cfg_attr(feature = "stm32f437ig", path = "stm32f437ig.rs")]
96#[cfg_attr(feature="stm32f437ii", path="stm32f437ii.rs")] 96#[cfg_attr(feature = "stm32f437ii", path = "stm32f437ii.rs")]
97#[cfg_attr(feature="stm32f437vg", path="stm32f437vg.rs")] 97#[cfg_attr(feature = "stm32f437vg", path = "stm32f437vg.rs")]
98#[cfg_attr(feature="stm32f437vi", path="stm32f437vi.rs")] 98#[cfg_attr(feature = "stm32f437vi", path = "stm32f437vi.rs")]
99#[cfg_attr(feature="stm32f437zg", path="stm32f437zg.rs")] 99#[cfg_attr(feature = "stm32f437zg", path = "stm32f437zg.rs")]
100#[cfg_attr(feature="stm32f437zi", path="stm32f437zi.rs")] 100#[cfg_attr(feature = "stm32f437zi", path = "stm32f437zi.rs")]
101#[cfg_attr(feature="stm32f439ai", path="stm32f439ai.rs")] 101#[cfg_attr(feature = "stm32f439ai", path = "stm32f439ai.rs")]
102#[cfg_attr(feature="stm32f439bg", path="stm32f439bg.rs")] 102#[cfg_attr(feature = "stm32f439bg", path = "stm32f439bg.rs")]
103#[cfg_attr(feature="stm32f439bi", path="stm32f439bi.rs")] 103#[cfg_attr(feature = "stm32f439bi", path = "stm32f439bi.rs")]
104#[cfg_attr(feature="stm32f439ig", path="stm32f439ig.rs")] 104#[cfg_attr(feature = "stm32f439ig", path = "stm32f439ig.rs")]
105#[cfg_attr(feature="stm32f439ii", path="stm32f439ii.rs")] 105#[cfg_attr(feature = "stm32f439ii", path = "stm32f439ii.rs")]
106#[cfg_attr(feature="stm32f439ng", path="stm32f439ng.rs")] 106#[cfg_attr(feature = "stm32f439ng", path = "stm32f439ng.rs")]
107#[cfg_attr(feature="stm32f439ni", path="stm32f439ni.rs")] 107#[cfg_attr(feature = "stm32f439ni", path = "stm32f439ni.rs")]
108#[cfg_attr(feature="stm32f439vg", path="stm32f439vg.rs")] 108#[cfg_attr(feature = "stm32f439vg", path = "stm32f439vg.rs")]
109#[cfg_attr(feature="stm32f439vi", path="stm32f439vi.rs")] 109#[cfg_attr(feature = "stm32f439vi", path = "stm32f439vi.rs")]
110#[cfg_attr(feature="stm32f439zg", path="stm32f439zg.rs")] 110#[cfg_attr(feature = "stm32f439zg", path = "stm32f439zg.rs")]
111#[cfg_attr(feature="stm32f439zi", path="stm32f439zi.rs")] 111#[cfg_attr(feature = "stm32f439zi", path = "stm32f439zi.rs")]
112#[cfg_attr(feature="stm32f446mc", path="stm32f446mc.rs")] 112#[cfg_attr(feature = "stm32f446mc", path = "stm32f446mc.rs")]
113#[cfg_attr(feature="stm32f446me", path="stm32f446me.rs")] 113#[cfg_attr(feature = "stm32f446me", path = "stm32f446me.rs")]
114#[cfg_attr(feature="stm32f446rc", path="stm32f446rc.rs")] 114#[cfg_attr(feature = "stm32f446rc", path = "stm32f446rc.rs")]
115#[cfg_attr(feature="stm32f446re", path="stm32f446re.rs")] 115#[cfg_attr(feature = "stm32f446re", path = "stm32f446re.rs")]
116#[cfg_attr(feature="stm32f446vc", path="stm32f446vc.rs")] 116#[cfg_attr(feature = "stm32f446vc", path = "stm32f446vc.rs")]
117#[cfg_attr(feature="stm32f446ve", path="stm32f446ve.rs")] 117#[cfg_attr(feature = "stm32f446ve", path = "stm32f446ve.rs")]
118#[cfg_attr(feature="stm32f446zc", path="stm32f446zc.rs")] 118#[cfg_attr(feature = "stm32f446zc", path = "stm32f446zc.rs")]
119#[cfg_attr(feature="stm32f446ze", path="stm32f446ze.rs")] 119#[cfg_attr(feature = "stm32f446ze", path = "stm32f446ze.rs")]
120#[cfg_attr(feature="stm32f469ae", path="stm32f469ae.rs")] 120#[cfg_attr(feature = "stm32f469ae", path = "stm32f469ae.rs")]
121#[cfg_attr(feature="stm32f469ag", path="stm32f469ag.rs")] 121#[cfg_attr(feature = "stm32f469ag", path = "stm32f469ag.rs")]
122#[cfg_attr(feature="stm32f469ai", path="stm32f469ai.rs")] 122#[cfg_attr(feature = "stm32f469ai", path = "stm32f469ai.rs")]
123#[cfg_attr(feature="stm32f469be", path="stm32f469be.rs")] 123#[cfg_attr(feature = "stm32f469be", path = "stm32f469be.rs")]
124#[cfg_attr(feature="stm32f469bg", path="stm32f469bg.rs")] 124#[cfg_attr(feature = "stm32f469bg", path = "stm32f469bg.rs")]
125#[cfg_attr(feature="stm32f469bi", path="stm32f469bi.rs")] 125#[cfg_attr(feature = "stm32f469bi", path = "stm32f469bi.rs")]
126#[cfg_attr(feature="stm32f469ie", path="stm32f469ie.rs")] 126#[cfg_attr(feature = "stm32f469ie", path = "stm32f469ie.rs")]
127#[cfg_attr(feature="stm32f469ig", path="stm32f469ig.rs")] 127#[cfg_attr(feature = "stm32f469ig", path = "stm32f469ig.rs")]
128#[cfg_attr(feature="stm32f469ii", path="stm32f469ii.rs")] 128#[cfg_attr(feature = "stm32f469ii", path = "stm32f469ii.rs")]
129#[cfg_attr(feature="stm32f469ne", path="stm32f469ne.rs")] 129#[cfg_attr(feature = "stm32f469ne", path = "stm32f469ne.rs")]
130#[cfg_attr(feature="stm32f469ng", path="stm32f469ng.rs")] 130#[cfg_attr(feature = "stm32f469ng", path = "stm32f469ng.rs")]
131#[cfg_attr(feature="stm32f469ni", path="stm32f469ni.rs")] 131#[cfg_attr(feature = "stm32f469ni", path = "stm32f469ni.rs")]
132#[cfg_attr(feature="stm32f469ve", path="stm32f469ve.rs")] 132#[cfg_attr(feature = "stm32f469ve", path = "stm32f469ve.rs")]
133#[cfg_attr(feature="stm32f469vg", path="stm32f469vg.rs")] 133#[cfg_attr(feature = "stm32f469vg", path = "stm32f469vg.rs")]
134#[cfg_attr(feature="stm32f469vi", path="stm32f469vi.rs")] 134#[cfg_attr(feature = "stm32f469vi", path = "stm32f469vi.rs")]
135#[cfg_attr(feature="stm32f469ze", path="stm32f469ze.rs")] 135#[cfg_attr(feature = "stm32f469ze", path = "stm32f469ze.rs")]
136#[cfg_attr(feature="stm32f469zg", path="stm32f469zg.rs")] 136#[cfg_attr(feature = "stm32f469zg", path = "stm32f469zg.rs")]
137#[cfg_attr(feature="stm32f469zi", path="stm32f469zi.rs")] 137#[cfg_attr(feature = "stm32f469zi", path = "stm32f469zi.rs")]
138#[cfg_attr(feature="stm32f479ag", path="stm32f479ag.rs")] 138#[cfg_attr(feature = "stm32f479ag", path = "stm32f479ag.rs")]
139#[cfg_attr(feature="stm32f479ai", path="stm32f479ai.rs")] 139#[cfg_attr(feature = "stm32f479ai", path = "stm32f479ai.rs")]
140#[cfg_attr(feature="stm32f479bg", path="stm32f479bg.rs")] 140#[cfg_attr(feature = "stm32f479bg", path = "stm32f479bg.rs")]
141#[cfg_attr(feature="stm32f479bi", path="stm32f479bi.rs")] 141#[cfg_attr(feature = "stm32f479bi", path = "stm32f479bi.rs")]
142#[cfg_attr(feature="stm32f479ig", path="stm32f479ig.rs")] 142#[cfg_attr(feature = "stm32f479ig", path = "stm32f479ig.rs")]
143#[cfg_attr(feature="stm32f479ii", path="stm32f479ii.rs")] 143#[cfg_attr(feature = "stm32f479ii", path = "stm32f479ii.rs")]
144#[cfg_attr(feature="stm32f479ng", path="stm32f479ng.rs")] 144#[cfg_attr(feature = "stm32f479ng", path = "stm32f479ng.rs")]
145#[cfg_attr(feature="stm32f479ni", path="stm32f479ni.rs")] 145#[cfg_attr(feature = "stm32f479ni", path = "stm32f479ni.rs")]
146#[cfg_attr(feature="stm32f479vg", path="stm32f479vg.rs")] 146#[cfg_attr(feature = "stm32f479vg", path = "stm32f479vg.rs")]
147#[cfg_attr(feature="stm32f479vi", path="stm32f479vi.rs")] 147#[cfg_attr(feature = "stm32f479vi", path = "stm32f479vi.rs")]
148#[cfg_attr(feature="stm32f479zg", path="stm32f479zg.rs")] 148#[cfg_attr(feature = "stm32f479zg", path = "stm32f479zg.rs")]
149#[cfg_attr(feature="stm32f479zi", path="stm32f479zi.rs")] 149#[cfg_attr(feature = "stm32f479zi", path = "stm32f479zi.rs")]
150mod chip; 150mod chip;
151pub use chip::*; 151pub use chip::*;
diff --git a/embassy-stm32/src/chip/stm32f401cb.rs b/embassy-stm32/src/chip/stm32f401cb.rs
index 93375bf7b..2af74c4cb 100644
--- a/embassy-stm32/src/chip/stm32f401cb.rs
+++ b/embassy-stm32/src/chip/stm32f401cb.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3, TIM4,
11 TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401cc.rs b/embassy-stm32/src/chip/stm32f401cc.rs
index 93375bf7b..2af74c4cb 100644
--- a/embassy-stm32/src/chip/stm32f401cc.rs
+++ b/embassy-stm32/src/chip/stm32f401cc.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3, TIM4,
11 TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401cd.rs b/embassy-stm32/src/chip/stm32f401cd.rs
index 93375bf7b..2af74c4cb 100644
--- a/embassy-stm32/src/chip/stm32f401cd.rs
+++ b/embassy-stm32/src/chip/stm32f401cd.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3, TIM4,
11 TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401ce.rs b/embassy-stm32/src/chip/stm32f401ce.rs
index 93375bf7b..2af74c4cb 100644
--- a/embassy-stm32/src/chip/stm32f401ce.rs
+++ b/embassy-stm32/src/chip/stm32f401ce.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3, TIM4,
11 TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401rb.rs b/embassy-stm32/src/chip/stm32f401rb.rs
index 93375bf7b..0165142f4 100644
--- a/embassy-stm32/src/chip/stm32f401rb.rs
+++ b/embassy-stm32/src/chip/stm32f401rb.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3,
11 TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401rc.rs b/embassy-stm32/src/chip/stm32f401rc.rs
index 93375bf7b..0165142f4 100644
--- a/embassy-stm32/src/chip/stm32f401rc.rs
+++ b/embassy-stm32/src/chip/stm32f401rc.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3,
11 TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401rd.rs b/embassy-stm32/src/chip/stm32f401rd.rs
index 93375bf7b..0165142f4 100644
--- a/embassy-stm32/src/chip/stm32f401rd.rs
+++ b/embassy-stm32/src/chip/stm32f401rd.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3,
11 TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401re.rs b/embassy-stm32/src/chip/stm32f401re.rs
index 93375bf7b..0165142f4 100644
--- a/embassy-stm32/src/chip/stm32f401re.rs
+++ b/embassy-stm32/src/chip/stm32f401re.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11, TIM2, TIM3,
11 TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401vb.rs b/embassy-stm32/src/chip/stm32f401vb.rs
index 93375bf7b..5efee0970 100644
--- a/embassy-stm32/src/chip/stm32f401vb.rs
+++ b/embassy-stm32/src/chip/stm32f401vb.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM2,
11 TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401vc.rs b/embassy-stm32/src/chip/stm32f401vc.rs
index 93375bf7b..5efee0970 100644
--- a/embassy-stm32/src/chip/stm32f401vc.rs
+++ b/embassy-stm32/src/chip/stm32f401vc.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM2,
11 TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401vd.rs b/embassy-stm32/src/chip/stm32f401vd.rs
index 93375bf7b..5efee0970 100644
--- a/embassy-stm32/src/chip/stm32f401vd.rs
+++ b/embassy-stm32/src/chip/stm32f401vd.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM2,
11 TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f401ve.rs b/embassy-stm32/src/chip/stm32f401ve.rs
index 93375bf7b..5efee0970 100644
--- a/embassy-stm32/src/chip/stm32f401ve.rs
+++ b/embassy-stm32/src/chip/stm32f401ve.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM2,
11 TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f405oe.rs b/embassy-stm32/src/chip/stm32f405oe.rs
index 93375bf7b..08837bc8f 100644
--- a/embassy-stm32/src/chip/stm32f405oe.rs
+++ b/embassy-stm32/src/chip/stm32f405oe.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11,
14 TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5, USART1,
15 USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f405og.rs b/embassy-stm32/src/chip/stm32f405og.rs
index 93375bf7b..08837bc8f 100644
--- a/embassy-stm32/src/chip/stm32f405og.rs
+++ b/embassy-stm32/src/chip/stm32f405og.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11,
14 TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5, USART1,
15 USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f405rg.rs b/embassy-stm32/src/chip/stm32f405rg.rs
index 93375bf7b..08837bc8f 100644
--- a/embassy-stm32/src/chip/stm32f405rg.rs
+++ b/embassy-stm32/src/chip/stm32f405rg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11,
14 TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5, USART1,
15 USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f405vg.rs b/embassy-stm32/src/chip/stm32f405vg.rs
index 93375bf7b..08837bc8f 100644
--- a/embassy-stm32/src/chip/stm32f405vg.rs
+++ b/embassy-stm32/src/chip/stm32f405vg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11,
14 TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5, USART1,
15 USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f405zg.rs b/embassy-stm32/src/chip/stm32f405zg.rs
index 93375bf7b..08837bc8f 100644
--- a/embassy-stm32/src/chip/stm32f405zg.rs
+++ b/embassy-stm32/src/chip/stm32f405zg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10, TIM11,
14 TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5, USART1,
15 USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f407ie.rs b/embassy-stm32/src/chip/stm32f407ie.rs
index 93375bf7b..162a21398 100644
--- a/embassy-stm32/src/chip/stm32f407ie.rs
+++ b/embassy-stm32/src/chip/stm32f407ie.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, ETH, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f407ig.rs b/embassy-stm32/src/chip/stm32f407ig.rs
index 93375bf7b..162a21398 100644
--- a/embassy-stm32/src/chip/stm32f407ig.rs
+++ b/embassy-stm32/src/chip/stm32f407ig.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, ETH, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f407ve.rs b/embassy-stm32/src/chip/stm32f407ve.rs
index 93375bf7b..162a21398 100644
--- a/embassy-stm32/src/chip/stm32f407ve.rs
+++ b/embassy-stm32/src/chip/stm32f407ve.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, ETH, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f407vg.rs b/embassy-stm32/src/chip/stm32f407vg.rs
index 93375bf7b..162a21398 100644
--- a/embassy-stm32/src/chip/stm32f407vg.rs
+++ b/embassy-stm32/src/chip/stm32f407vg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, ETH, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f407ze.rs b/embassy-stm32/src/chip/stm32f407ze.rs
index 93375bf7b..162a21398 100644
--- a/embassy-stm32/src/chip/stm32f407ze.rs
+++ b/embassy-stm32/src/chip/stm32f407ze.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, ETH, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f407zg.rs b/embassy-stm32/src/chip/stm32f407zg.rs
index 93375bf7b..162a21398 100644
--- a/embassy-stm32/src/chip/stm32f407zg.rs
+++ b/embassy-stm32/src/chip/stm32f407zg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, ETH, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f410c8.rs b/embassy-stm32/src/chip/stm32f410c8.rs
index 93375bf7b..74631fd17 100644
--- a/embassy-stm32/src/chip/stm32f410c8.rs
+++ b/embassy-stm32/src/chip/stm32f410c8.rs
@@ -1,4 +1,76 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
8 PH13, PH14, PH15, I2C1, I2C2, IWDG, LPTIM1, RCC, RNG, RTC, SPI1, SPI2, SPI5, SYSCFG, TIM1,
9 TIM11, TIM5, TIM6, TIM9, USART1, USART2, USART6, WWDG
10);
11pub const GPIO_BASE: usize = 0x40020000;
12pub const GPIO_STRIDE: usize = 0x400;
13impl_gpio_pin!(PA0, 0, 0, EXTI0);
14impl_gpio_pin!(PA1, 0, 1, EXTI1);
15impl_gpio_pin!(PA2, 0, 2, EXTI2);
16impl_gpio_pin!(PA3, 0, 3, EXTI3);
17impl_gpio_pin!(PA4, 0, 4, EXTI4);
18impl_gpio_pin!(PA5, 0, 5, EXTI5);
19impl_gpio_pin!(PA6, 0, 6, EXTI6);
20impl_gpio_pin!(PA7, 0, 7, EXTI7);
21impl_gpio_pin!(PA8, 0, 8, EXTI8);
22impl_gpio_pin!(PA9, 0, 9, EXTI9);
23impl_gpio_pin!(PA10, 0, 10, EXTI10);
24impl_gpio_pin!(PA11, 0, 11, EXTI11);
25impl_gpio_pin!(PA12, 0, 12, EXTI12);
26impl_gpio_pin!(PA13, 0, 13, EXTI13);
27impl_gpio_pin!(PA14, 0, 14, EXTI14);
28impl_gpio_pin!(PA15, 0, 15, EXTI15);
29impl_gpio_pin!(PB0, 1, 0, EXTI0);
30impl_gpio_pin!(PB1, 1, 1, EXTI1);
31impl_gpio_pin!(PB2, 1, 2, EXTI2);
32impl_gpio_pin!(PB3, 1, 3, EXTI3);
33impl_gpio_pin!(PB4, 1, 4, EXTI4);
34impl_gpio_pin!(PB5, 1, 5, EXTI5);
35impl_gpio_pin!(PB6, 1, 6, EXTI6);
36impl_gpio_pin!(PB7, 1, 7, EXTI7);
37impl_gpio_pin!(PB8, 1, 8, EXTI8);
38impl_gpio_pin!(PB9, 1, 9, EXTI9);
39impl_gpio_pin!(PB10, 1, 10, EXTI10);
40impl_gpio_pin!(PB11, 1, 11, EXTI11);
41impl_gpio_pin!(PB12, 1, 12, EXTI12);
42impl_gpio_pin!(PB13, 1, 13, EXTI13);
43impl_gpio_pin!(PB14, 1, 14, EXTI14);
44impl_gpio_pin!(PB15, 1, 15, EXTI15);
45impl_gpio_pin!(PC0, 2, 0, EXTI0);
46impl_gpio_pin!(PC1, 2, 1, EXTI1);
47impl_gpio_pin!(PC2, 2, 2, EXTI2);
48impl_gpio_pin!(PC3, 2, 3, EXTI3);
49impl_gpio_pin!(PC4, 2, 4, EXTI4);
50impl_gpio_pin!(PC5, 2, 5, EXTI5);
51impl_gpio_pin!(PC6, 2, 6, EXTI6);
52impl_gpio_pin!(PC7, 2, 7, EXTI7);
53impl_gpio_pin!(PC8, 2, 8, EXTI8);
54impl_gpio_pin!(PC9, 2, 9, EXTI9);
55impl_gpio_pin!(PC10, 2, 10, EXTI10);
56impl_gpio_pin!(PC11, 2, 11, EXTI11);
57impl_gpio_pin!(PC12, 2, 12, EXTI12);
58impl_gpio_pin!(PC13, 2, 13, EXTI13);
59impl_gpio_pin!(PC14, 2, 14, EXTI14);
60impl_gpio_pin!(PC15, 2, 15, EXTI15);
61impl_gpio_pin!(PH0, 7, 0, EXTI0);
62impl_gpio_pin!(PH1, 7, 1, EXTI1);
63impl_gpio_pin!(PH2, 7, 2, EXTI2);
64impl_gpio_pin!(PH3, 7, 3, EXTI3);
65impl_gpio_pin!(PH4, 7, 4, EXTI4);
66impl_gpio_pin!(PH5, 7, 5, EXTI5);
67impl_gpio_pin!(PH6, 7, 6, EXTI6);
68impl_gpio_pin!(PH7, 7, 7, EXTI7);
69impl_gpio_pin!(PH8, 7, 8, EXTI8);
70impl_gpio_pin!(PH9, 7, 9, EXTI9);
71impl_gpio_pin!(PH10, 7, 10, EXTI10);
72impl_gpio_pin!(PH11, 7, 11, EXTI11);
73impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f410cb.rs b/embassy-stm32/src/chip/stm32f410cb.rs
index 93375bf7b..74631fd17 100644
--- a/embassy-stm32/src/chip/stm32f410cb.rs
+++ b/embassy-stm32/src/chip/stm32f410cb.rs
@@ -1,4 +1,76 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
8 PH13, PH14, PH15, I2C1, I2C2, IWDG, LPTIM1, RCC, RNG, RTC, SPI1, SPI2, SPI5, SYSCFG, TIM1,
9 TIM11, TIM5, TIM6, TIM9, USART1, USART2, USART6, WWDG
10);
11pub const GPIO_BASE: usize = 0x40020000;
12pub const GPIO_STRIDE: usize = 0x400;
13impl_gpio_pin!(PA0, 0, 0, EXTI0);
14impl_gpio_pin!(PA1, 0, 1, EXTI1);
15impl_gpio_pin!(PA2, 0, 2, EXTI2);
16impl_gpio_pin!(PA3, 0, 3, EXTI3);
17impl_gpio_pin!(PA4, 0, 4, EXTI4);
18impl_gpio_pin!(PA5, 0, 5, EXTI5);
19impl_gpio_pin!(PA6, 0, 6, EXTI6);
20impl_gpio_pin!(PA7, 0, 7, EXTI7);
21impl_gpio_pin!(PA8, 0, 8, EXTI8);
22impl_gpio_pin!(PA9, 0, 9, EXTI9);
23impl_gpio_pin!(PA10, 0, 10, EXTI10);
24impl_gpio_pin!(PA11, 0, 11, EXTI11);
25impl_gpio_pin!(PA12, 0, 12, EXTI12);
26impl_gpio_pin!(PA13, 0, 13, EXTI13);
27impl_gpio_pin!(PA14, 0, 14, EXTI14);
28impl_gpio_pin!(PA15, 0, 15, EXTI15);
29impl_gpio_pin!(PB0, 1, 0, EXTI0);
30impl_gpio_pin!(PB1, 1, 1, EXTI1);
31impl_gpio_pin!(PB2, 1, 2, EXTI2);
32impl_gpio_pin!(PB3, 1, 3, EXTI3);
33impl_gpio_pin!(PB4, 1, 4, EXTI4);
34impl_gpio_pin!(PB5, 1, 5, EXTI5);
35impl_gpio_pin!(PB6, 1, 6, EXTI6);
36impl_gpio_pin!(PB7, 1, 7, EXTI7);
37impl_gpio_pin!(PB8, 1, 8, EXTI8);
38impl_gpio_pin!(PB9, 1, 9, EXTI9);
39impl_gpio_pin!(PB10, 1, 10, EXTI10);
40impl_gpio_pin!(PB11, 1, 11, EXTI11);
41impl_gpio_pin!(PB12, 1, 12, EXTI12);
42impl_gpio_pin!(PB13, 1, 13, EXTI13);
43impl_gpio_pin!(PB14, 1, 14, EXTI14);
44impl_gpio_pin!(PB15, 1, 15, EXTI15);
45impl_gpio_pin!(PC0, 2, 0, EXTI0);
46impl_gpio_pin!(PC1, 2, 1, EXTI1);
47impl_gpio_pin!(PC2, 2, 2, EXTI2);
48impl_gpio_pin!(PC3, 2, 3, EXTI3);
49impl_gpio_pin!(PC4, 2, 4, EXTI4);
50impl_gpio_pin!(PC5, 2, 5, EXTI5);
51impl_gpio_pin!(PC6, 2, 6, EXTI6);
52impl_gpio_pin!(PC7, 2, 7, EXTI7);
53impl_gpio_pin!(PC8, 2, 8, EXTI8);
54impl_gpio_pin!(PC9, 2, 9, EXTI9);
55impl_gpio_pin!(PC10, 2, 10, EXTI10);
56impl_gpio_pin!(PC11, 2, 11, EXTI11);
57impl_gpio_pin!(PC12, 2, 12, EXTI12);
58impl_gpio_pin!(PC13, 2, 13, EXTI13);
59impl_gpio_pin!(PC14, 2, 14, EXTI14);
60impl_gpio_pin!(PC15, 2, 15, EXTI15);
61impl_gpio_pin!(PH0, 7, 0, EXTI0);
62impl_gpio_pin!(PH1, 7, 1, EXTI1);
63impl_gpio_pin!(PH2, 7, 2, EXTI2);
64impl_gpio_pin!(PH3, 7, 3, EXTI3);
65impl_gpio_pin!(PH4, 7, 4, EXTI4);
66impl_gpio_pin!(PH5, 7, 5, EXTI5);
67impl_gpio_pin!(PH6, 7, 6, EXTI6);
68impl_gpio_pin!(PH7, 7, 7, EXTI7);
69impl_gpio_pin!(PH8, 7, 8, EXTI8);
70impl_gpio_pin!(PH9, 7, 9, EXTI9);
71impl_gpio_pin!(PH10, 7, 10, EXTI10);
72impl_gpio_pin!(PH11, 7, 11, EXTI11);
73impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f410r8.rs b/embassy-stm32/src/chip/stm32f410r8.rs
index 93375bf7b..74631fd17 100644
--- a/embassy-stm32/src/chip/stm32f410r8.rs
+++ b/embassy-stm32/src/chip/stm32f410r8.rs
@@ -1,4 +1,76 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
8 PH13, PH14, PH15, I2C1, I2C2, IWDG, LPTIM1, RCC, RNG, RTC, SPI1, SPI2, SPI5, SYSCFG, TIM1,
9 TIM11, TIM5, TIM6, TIM9, USART1, USART2, USART6, WWDG
10);
11pub const GPIO_BASE: usize = 0x40020000;
12pub const GPIO_STRIDE: usize = 0x400;
13impl_gpio_pin!(PA0, 0, 0, EXTI0);
14impl_gpio_pin!(PA1, 0, 1, EXTI1);
15impl_gpio_pin!(PA2, 0, 2, EXTI2);
16impl_gpio_pin!(PA3, 0, 3, EXTI3);
17impl_gpio_pin!(PA4, 0, 4, EXTI4);
18impl_gpio_pin!(PA5, 0, 5, EXTI5);
19impl_gpio_pin!(PA6, 0, 6, EXTI6);
20impl_gpio_pin!(PA7, 0, 7, EXTI7);
21impl_gpio_pin!(PA8, 0, 8, EXTI8);
22impl_gpio_pin!(PA9, 0, 9, EXTI9);
23impl_gpio_pin!(PA10, 0, 10, EXTI10);
24impl_gpio_pin!(PA11, 0, 11, EXTI11);
25impl_gpio_pin!(PA12, 0, 12, EXTI12);
26impl_gpio_pin!(PA13, 0, 13, EXTI13);
27impl_gpio_pin!(PA14, 0, 14, EXTI14);
28impl_gpio_pin!(PA15, 0, 15, EXTI15);
29impl_gpio_pin!(PB0, 1, 0, EXTI0);
30impl_gpio_pin!(PB1, 1, 1, EXTI1);
31impl_gpio_pin!(PB2, 1, 2, EXTI2);
32impl_gpio_pin!(PB3, 1, 3, EXTI3);
33impl_gpio_pin!(PB4, 1, 4, EXTI4);
34impl_gpio_pin!(PB5, 1, 5, EXTI5);
35impl_gpio_pin!(PB6, 1, 6, EXTI6);
36impl_gpio_pin!(PB7, 1, 7, EXTI7);
37impl_gpio_pin!(PB8, 1, 8, EXTI8);
38impl_gpio_pin!(PB9, 1, 9, EXTI9);
39impl_gpio_pin!(PB10, 1, 10, EXTI10);
40impl_gpio_pin!(PB11, 1, 11, EXTI11);
41impl_gpio_pin!(PB12, 1, 12, EXTI12);
42impl_gpio_pin!(PB13, 1, 13, EXTI13);
43impl_gpio_pin!(PB14, 1, 14, EXTI14);
44impl_gpio_pin!(PB15, 1, 15, EXTI15);
45impl_gpio_pin!(PC0, 2, 0, EXTI0);
46impl_gpio_pin!(PC1, 2, 1, EXTI1);
47impl_gpio_pin!(PC2, 2, 2, EXTI2);
48impl_gpio_pin!(PC3, 2, 3, EXTI3);
49impl_gpio_pin!(PC4, 2, 4, EXTI4);
50impl_gpio_pin!(PC5, 2, 5, EXTI5);
51impl_gpio_pin!(PC6, 2, 6, EXTI6);
52impl_gpio_pin!(PC7, 2, 7, EXTI7);
53impl_gpio_pin!(PC8, 2, 8, EXTI8);
54impl_gpio_pin!(PC9, 2, 9, EXTI9);
55impl_gpio_pin!(PC10, 2, 10, EXTI10);
56impl_gpio_pin!(PC11, 2, 11, EXTI11);
57impl_gpio_pin!(PC12, 2, 12, EXTI12);
58impl_gpio_pin!(PC13, 2, 13, EXTI13);
59impl_gpio_pin!(PC14, 2, 14, EXTI14);
60impl_gpio_pin!(PC15, 2, 15, EXTI15);
61impl_gpio_pin!(PH0, 7, 0, EXTI0);
62impl_gpio_pin!(PH1, 7, 1, EXTI1);
63impl_gpio_pin!(PH2, 7, 2, EXTI2);
64impl_gpio_pin!(PH3, 7, 3, EXTI3);
65impl_gpio_pin!(PH4, 7, 4, EXTI4);
66impl_gpio_pin!(PH5, 7, 5, EXTI5);
67impl_gpio_pin!(PH6, 7, 6, EXTI6);
68impl_gpio_pin!(PH7, 7, 7, EXTI7);
69impl_gpio_pin!(PH8, 7, 8, EXTI8);
70impl_gpio_pin!(PH9, 7, 9, EXTI9);
71impl_gpio_pin!(PH10, 7, 10, EXTI10);
72impl_gpio_pin!(PH11, 7, 11, EXTI11);
73impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f410rb.rs b/embassy-stm32/src/chip/stm32f410rb.rs
index 93375bf7b..74631fd17 100644
--- a/embassy-stm32/src/chip/stm32f410rb.rs
+++ b/embassy-stm32/src/chip/stm32f410rb.rs
@@ -1,4 +1,76 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
8 PH13, PH14, PH15, I2C1, I2C2, IWDG, LPTIM1, RCC, RNG, RTC, SPI1, SPI2, SPI5, SYSCFG, TIM1,
9 TIM11, TIM5, TIM6, TIM9, USART1, USART2, USART6, WWDG
10);
11pub const GPIO_BASE: usize = 0x40020000;
12pub const GPIO_STRIDE: usize = 0x400;
13impl_gpio_pin!(PA0, 0, 0, EXTI0);
14impl_gpio_pin!(PA1, 0, 1, EXTI1);
15impl_gpio_pin!(PA2, 0, 2, EXTI2);
16impl_gpio_pin!(PA3, 0, 3, EXTI3);
17impl_gpio_pin!(PA4, 0, 4, EXTI4);
18impl_gpio_pin!(PA5, 0, 5, EXTI5);
19impl_gpio_pin!(PA6, 0, 6, EXTI6);
20impl_gpio_pin!(PA7, 0, 7, EXTI7);
21impl_gpio_pin!(PA8, 0, 8, EXTI8);
22impl_gpio_pin!(PA9, 0, 9, EXTI9);
23impl_gpio_pin!(PA10, 0, 10, EXTI10);
24impl_gpio_pin!(PA11, 0, 11, EXTI11);
25impl_gpio_pin!(PA12, 0, 12, EXTI12);
26impl_gpio_pin!(PA13, 0, 13, EXTI13);
27impl_gpio_pin!(PA14, 0, 14, EXTI14);
28impl_gpio_pin!(PA15, 0, 15, EXTI15);
29impl_gpio_pin!(PB0, 1, 0, EXTI0);
30impl_gpio_pin!(PB1, 1, 1, EXTI1);
31impl_gpio_pin!(PB2, 1, 2, EXTI2);
32impl_gpio_pin!(PB3, 1, 3, EXTI3);
33impl_gpio_pin!(PB4, 1, 4, EXTI4);
34impl_gpio_pin!(PB5, 1, 5, EXTI5);
35impl_gpio_pin!(PB6, 1, 6, EXTI6);
36impl_gpio_pin!(PB7, 1, 7, EXTI7);
37impl_gpio_pin!(PB8, 1, 8, EXTI8);
38impl_gpio_pin!(PB9, 1, 9, EXTI9);
39impl_gpio_pin!(PB10, 1, 10, EXTI10);
40impl_gpio_pin!(PB11, 1, 11, EXTI11);
41impl_gpio_pin!(PB12, 1, 12, EXTI12);
42impl_gpio_pin!(PB13, 1, 13, EXTI13);
43impl_gpio_pin!(PB14, 1, 14, EXTI14);
44impl_gpio_pin!(PB15, 1, 15, EXTI15);
45impl_gpio_pin!(PC0, 2, 0, EXTI0);
46impl_gpio_pin!(PC1, 2, 1, EXTI1);
47impl_gpio_pin!(PC2, 2, 2, EXTI2);
48impl_gpio_pin!(PC3, 2, 3, EXTI3);
49impl_gpio_pin!(PC4, 2, 4, EXTI4);
50impl_gpio_pin!(PC5, 2, 5, EXTI5);
51impl_gpio_pin!(PC6, 2, 6, EXTI6);
52impl_gpio_pin!(PC7, 2, 7, EXTI7);
53impl_gpio_pin!(PC8, 2, 8, EXTI8);
54impl_gpio_pin!(PC9, 2, 9, EXTI9);
55impl_gpio_pin!(PC10, 2, 10, EXTI10);
56impl_gpio_pin!(PC11, 2, 11, EXTI11);
57impl_gpio_pin!(PC12, 2, 12, EXTI12);
58impl_gpio_pin!(PC13, 2, 13, EXTI13);
59impl_gpio_pin!(PC14, 2, 14, EXTI14);
60impl_gpio_pin!(PC15, 2, 15, EXTI15);
61impl_gpio_pin!(PH0, 7, 0, EXTI0);
62impl_gpio_pin!(PH1, 7, 1, EXTI1);
63impl_gpio_pin!(PH2, 7, 2, EXTI2);
64impl_gpio_pin!(PH3, 7, 3, EXTI3);
65impl_gpio_pin!(PH4, 7, 4, EXTI4);
66impl_gpio_pin!(PH5, 7, 5, EXTI5);
67impl_gpio_pin!(PH6, 7, 6, EXTI6);
68impl_gpio_pin!(PH7, 7, 7, EXTI7);
69impl_gpio_pin!(PH8, 7, 8, EXTI8);
70impl_gpio_pin!(PH9, 7, 9, EXTI9);
71impl_gpio_pin!(PH10, 7, 10, EXTI10);
72impl_gpio_pin!(PH11, 7, 11, EXTI11);
73impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f410t8.rs b/embassy-stm32/src/chip/stm32f410t8.rs
index 93375bf7b..5b69afec9 100644
--- a/embassy-stm32/src/chip/stm32f410t8.rs
+++ b/embassy-stm32/src/chip/stm32f410t8.rs
@@ -1,4 +1,76 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
8 PH13, PH14, PH15, I2C1, I2C2, IWDG, LPTIM1, RCC, RNG, RTC, SPI1, SYSCFG, TIM1, TIM11, TIM5,
9 TIM6, TIM9, USART1, USART2, WWDG
10);
11pub const GPIO_BASE: usize = 0x40020000;
12pub const GPIO_STRIDE: usize = 0x400;
13impl_gpio_pin!(PA0, 0, 0, EXTI0);
14impl_gpio_pin!(PA1, 0, 1, EXTI1);
15impl_gpio_pin!(PA2, 0, 2, EXTI2);
16impl_gpio_pin!(PA3, 0, 3, EXTI3);
17impl_gpio_pin!(PA4, 0, 4, EXTI4);
18impl_gpio_pin!(PA5, 0, 5, EXTI5);
19impl_gpio_pin!(PA6, 0, 6, EXTI6);
20impl_gpio_pin!(PA7, 0, 7, EXTI7);
21impl_gpio_pin!(PA8, 0, 8, EXTI8);
22impl_gpio_pin!(PA9, 0, 9, EXTI9);
23impl_gpio_pin!(PA10, 0, 10, EXTI10);
24impl_gpio_pin!(PA11, 0, 11, EXTI11);
25impl_gpio_pin!(PA12, 0, 12, EXTI12);
26impl_gpio_pin!(PA13, 0, 13, EXTI13);
27impl_gpio_pin!(PA14, 0, 14, EXTI14);
28impl_gpio_pin!(PA15, 0, 15, EXTI15);
29impl_gpio_pin!(PB0, 1, 0, EXTI0);
30impl_gpio_pin!(PB1, 1, 1, EXTI1);
31impl_gpio_pin!(PB2, 1, 2, EXTI2);
32impl_gpio_pin!(PB3, 1, 3, EXTI3);
33impl_gpio_pin!(PB4, 1, 4, EXTI4);
34impl_gpio_pin!(PB5, 1, 5, EXTI5);
35impl_gpio_pin!(PB6, 1, 6, EXTI6);
36impl_gpio_pin!(PB7, 1, 7, EXTI7);
37impl_gpio_pin!(PB8, 1, 8, EXTI8);
38impl_gpio_pin!(PB9, 1, 9, EXTI9);
39impl_gpio_pin!(PB10, 1, 10, EXTI10);
40impl_gpio_pin!(PB11, 1, 11, EXTI11);
41impl_gpio_pin!(PB12, 1, 12, EXTI12);
42impl_gpio_pin!(PB13, 1, 13, EXTI13);
43impl_gpio_pin!(PB14, 1, 14, EXTI14);
44impl_gpio_pin!(PB15, 1, 15, EXTI15);
45impl_gpio_pin!(PC0, 2, 0, EXTI0);
46impl_gpio_pin!(PC1, 2, 1, EXTI1);
47impl_gpio_pin!(PC2, 2, 2, EXTI2);
48impl_gpio_pin!(PC3, 2, 3, EXTI3);
49impl_gpio_pin!(PC4, 2, 4, EXTI4);
50impl_gpio_pin!(PC5, 2, 5, EXTI5);
51impl_gpio_pin!(PC6, 2, 6, EXTI6);
52impl_gpio_pin!(PC7, 2, 7, EXTI7);
53impl_gpio_pin!(PC8, 2, 8, EXTI8);
54impl_gpio_pin!(PC9, 2, 9, EXTI9);
55impl_gpio_pin!(PC10, 2, 10, EXTI10);
56impl_gpio_pin!(PC11, 2, 11, EXTI11);
57impl_gpio_pin!(PC12, 2, 12, EXTI12);
58impl_gpio_pin!(PC13, 2, 13, EXTI13);
59impl_gpio_pin!(PC14, 2, 14, EXTI14);
60impl_gpio_pin!(PC15, 2, 15, EXTI15);
61impl_gpio_pin!(PH0, 7, 0, EXTI0);
62impl_gpio_pin!(PH1, 7, 1, EXTI1);
63impl_gpio_pin!(PH2, 7, 2, EXTI2);
64impl_gpio_pin!(PH3, 7, 3, EXTI3);
65impl_gpio_pin!(PH4, 7, 4, EXTI4);
66impl_gpio_pin!(PH5, 7, 5, EXTI5);
67impl_gpio_pin!(PH6, 7, 6, EXTI6);
68impl_gpio_pin!(PH7, 7, 7, EXTI7);
69impl_gpio_pin!(PH8, 7, 8, EXTI8);
70impl_gpio_pin!(PH9, 7, 9, EXTI9);
71impl_gpio_pin!(PH10, 7, 10, EXTI10);
72impl_gpio_pin!(PH11, 7, 11, EXTI11);
73impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f410tb.rs b/embassy-stm32/src/chip/stm32f410tb.rs
index 93375bf7b..5b69afec9 100644
--- a/embassy-stm32/src/chip/stm32f410tb.rs
+++ b/embassy-stm32/src/chip/stm32f410tb.rs
@@ -1,4 +1,76 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
8 PH13, PH14, PH15, I2C1, I2C2, IWDG, LPTIM1, RCC, RNG, RTC, SPI1, SYSCFG, TIM1, TIM11, TIM5,
9 TIM6, TIM9, USART1, USART2, WWDG
10);
11pub const GPIO_BASE: usize = 0x40020000;
12pub const GPIO_STRIDE: usize = 0x400;
13impl_gpio_pin!(PA0, 0, 0, EXTI0);
14impl_gpio_pin!(PA1, 0, 1, EXTI1);
15impl_gpio_pin!(PA2, 0, 2, EXTI2);
16impl_gpio_pin!(PA3, 0, 3, EXTI3);
17impl_gpio_pin!(PA4, 0, 4, EXTI4);
18impl_gpio_pin!(PA5, 0, 5, EXTI5);
19impl_gpio_pin!(PA6, 0, 6, EXTI6);
20impl_gpio_pin!(PA7, 0, 7, EXTI7);
21impl_gpio_pin!(PA8, 0, 8, EXTI8);
22impl_gpio_pin!(PA9, 0, 9, EXTI9);
23impl_gpio_pin!(PA10, 0, 10, EXTI10);
24impl_gpio_pin!(PA11, 0, 11, EXTI11);
25impl_gpio_pin!(PA12, 0, 12, EXTI12);
26impl_gpio_pin!(PA13, 0, 13, EXTI13);
27impl_gpio_pin!(PA14, 0, 14, EXTI14);
28impl_gpio_pin!(PA15, 0, 15, EXTI15);
29impl_gpio_pin!(PB0, 1, 0, EXTI0);
30impl_gpio_pin!(PB1, 1, 1, EXTI1);
31impl_gpio_pin!(PB2, 1, 2, EXTI2);
32impl_gpio_pin!(PB3, 1, 3, EXTI3);
33impl_gpio_pin!(PB4, 1, 4, EXTI4);
34impl_gpio_pin!(PB5, 1, 5, EXTI5);
35impl_gpio_pin!(PB6, 1, 6, EXTI6);
36impl_gpio_pin!(PB7, 1, 7, EXTI7);
37impl_gpio_pin!(PB8, 1, 8, EXTI8);
38impl_gpio_pin!(PB9, 1, 9, EXTI9);
39impl_gpio_pin!(PB10, 1, 10, EXTI10);
40impl_gpio_pin!(PB11, 1, 11, EXTI11);
41impl_gpio_pin!(PB12, 1, 12, EXTI12);
42impl_gpio_pin!(PB13, 1, 13, EXTI13);
43impl_gpio_pin!(PB14, 1, 14, EXTI14);
44impl_gpio_pin!(PB15, 1, 15, EXTI15);
45impl_gpio_pin!(PC0, 2, 0, EXTI0);
46impl_gpio_pin!(PC1, 2, 1, EXTI1);
47impl_gpio_pin!(PC2, 2, 2, EXTI2);
48impl_gpio_pin!(PC3, 2, 3, EXTI3);
49impl_gpio_pin!(PC4, 2, 4, EXTI4);
50impl_gpio_pin!(PC5, 2, 5, EXTI5);
51impl_gpio_pin!(PC6, 2, 6, EXTI6);
52impl_gpio_pin!(PC7, 2, 7, EXTI7);
53impl_gpio_pin!(PC8, 2, 8, EXTI8);
54impl_gpio_pin!(PC9, 2, 9, EXTI9);
55impl_gpio_pin!(PC10, 2, 10, EXTI10);
56impl_gpio_pin!(PC11, 2, 11, EXTI11);
57impl_gpio_pin!(PC12, 2, 12, EXTI12);
58impl_gpio_pin!(PC13, 2, 13, EXTI13);
59impl_gpio_pin!(PC14, 2, 14, EXTI14);
60impl_gpio_pin!(PC15, 2, 15, EXTI15);
61impl_gpio_pin!(PH0, 7, 0, EXTI0);
62impl_gpio_pin!(PH1, 7, 1, EXTI1);
63impl_gpio_pin!(PH2, 7, 2, EXTI2);
64impl_gpio_pin!(PH3, 7, 3, EXTI3);
65impl_gpio_pin!(PH4, 7, 4, EXTI4);
66impl_gpio_pin!(PH5, 7, 5, EXTI5);
67impl_gpio_pin!(PH6, 7, 6, EXTI6);
68impl_gpio_pin!(PH7, 7, 7, EXTI7);
69impl_gpio_pin!(PH8, 7, 8, EXTI8);
70impl_gpio_pin!(PH9, 7, 9, EXTI9);
71impl_gpio_pin!(PH10, 7, 10, EXTI10);
72impl_gpio_pin!(PH11, 7, 11, EXTI11);
73impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f411cc.rs b/embassy-stm32/src/chip/stm32f411cc.rs
index 93375bf7b..dc604f4c0 100644
--- a/embassy-stm32/src/chip/stm32f411cc.rs
+++ b/embassy-stm32/src/chip/stm32f411cc.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11,
11 TIM2, TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f411ce.rs b/embassy-stm32/src/chip/stm32f411ce.rs
index 93375bf7b..dc604f4c0 100644
--- a/embassy-stm32/src/chip/stm32f411ce.rs
+++ b/embassy-stm32/src/chip/stm32f411ce.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11,
11 TIM2, TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f411rc.rs b/embassy-stm32/src/chip/stm32f411rc.rs
index 93375bf7b..dc604f4c0 100644
--- a/embassy-stm32/src/chip/stm32f411rc.rs
+++ b/embassy-stm32/src/chip/stm32f411rc.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11,
11 TIM2, TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f411re.rs b/embassy-stm32/src/chip/stm32f411re.rs
index 93375bf7b..dc604f4c0 100644
--- a/embassy-stm32/src/chip/stm32f411re.rs
+++ b/embassy-stm32/src/chip/stm32f411re.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11,
11 TIM2, TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f411vc.rs b/embassy-stm32/src/chip/stm32f411vc.rs
index 93375bf7b..dc604f4c0 100644
--- a/embassy-stm32/src/chip/stm32f411vc.rs
+++ b/embassy-stm32/src/chip/stm32f411vc.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11,
11 TIM2, TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f411ve.rs b/embassy-stm32/src/chip/stm32f411ve.rs
index 93375bf7b..dc604f4c0 100644
--- a/embassy-stm32/src/chip/stm32f411ve.rs
+++ b/embassy-stm32/src/chip/stm32f411ve.rs
@@ -1,4 +1,110 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11,
5 PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12,
6 PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13,
7 PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14,
8 PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15,
9 PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15, I2C1,
10 I2C2, I2C3, IWDG, RCC, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11,
11 TIM2, TIM3, TIM4, TIM5, TIM9, USART1, USART2, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412ce.rs b/embassy-stm32/src/chip/stm32f412ce.rs
index 93375bf7b..df5e3f8ab 100644
--- a/embassy-stm32/src/chip/stm32f412ce.rs
+++ b/embassy-stm32/src/chip/stm32f412ce.rs
@@ -1,4 +1,77 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
8 PH12, PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4,
9 SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
10 TIM8, TIM9, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
11);
12pub const GPIO_BASE: usize = 0x40020000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PH0, 7, 0, EXTI0);
63impl_gpio_pin!(PH1, 7, 1, EXTI1);
64impl_gpio_pin!(PH2, 7, 2, EXTI2);
65impl_gpio_pin!(PH3, 7, 3, EXTI3);
66impl_gpio_pin!(PH4, 7, 4, EXTI4);
67impl_gpio_pin!(PH5, 7, 5, EXTI5);
68impl_gpio_pin!(PH6, 7, 6, EXTI6);
69impl_gpio_pin!(PH7, 7, 7, EXTI7);
70impl_gpio_pin!(PH8, 7, 8, EXTI8);
71impl_gpio_pin!(PH9, 7, 9, EXTI9);
72impl_gpio_pin!(PH10, 7, 10, EXTI10);
73impl_gpio_pin!(PH11, 7, 11, EXTI11);
74impl_gpio_pin!(PH12, 7, 12, EXTI12);
75impl_gpio_pin!(PH13, 7, 13, EXTI13);
76impl_gpio_pin!(PH14, 7, 14, EXTI14);
77impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412cg.rs b/embassy-stm32/src/chip/stm32f412cg.rs
index 93375bf7b..df5e3f8ab 100644
--- a/embassy-stm32/src/chip/stm32f412cg.rs
+++ b/embassy-stm32/src/chip/stm32f412cg.rs
@@ -1,4 +1,77 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
8 PH12, PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4,
9 SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
10 TIM8, TIM9, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
11);
12pub const GPIO_BASE: usize = 0x40020000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PH0, 7, 0, EXTI0);
63impl_gpio_pin!(PH1, 7, 1, EXTI1);
64impl_gpio_pin!(PH2, 7, 2, EXTI2);
65impl_gpio_pin!(PH3, 7, 3, EXTI3);
66impl_gpio_pin!(PH4, 7, 4, EXTI4);
67impl_gpio_pin!(PH5, 7, 5, EXTI5);
68impl_gpio_pin!(PH6, 7, 6, EXTI6);
69impl_gpio_pin!(PH7, 7, 7, EXTI7);
70impl_gpio_pin!(PH8, 7, 8, EXTI8);
71impl_gpio_pin!(PH9, 7, 9, EXTI9);
72impl_gpio_pin!(PH10, 7, 10, EXTI10);
73impl_gpio_pin!(PH11, 7, 11, EXTI11);
74impl_gpio_pin!(PH12, 7, 12, EXTI12);
75impl_gpio_pin!(PH13, 7, 13, EXTI13);
76impl_gpio_pin!(PH14, 7, 14, EXTI14);
77impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412re.rs b/embassy-stm32/src/chip/stm32f412re.rs
index 93375bf7b..d1042c8c0 100644
--- a/embassy-stm32/src/chip/stm32f412re.rs
+++ b/embassy-stm32/src/chip/stm32f412re.rs
@@ -1,4 +1,94 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
9 PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4,
10 SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
11 TIM8, TIM9, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PH0, 7, 0, EXTI0);
80impl_gpio_pin!(PH1, 7, 1, EXTI1);
81impl_gpio_pin!(PH2, 7, 2, EXTI2);
82impl_gpio_pin!(PH3, 7, 3, EXTI3);
83impl_gpio_pin!(PH4, 7, 4, EXTI4);
84impl_gpio_pin!(PH5, 7, 5, EXTI5);
85impl_gpio_pin!(PH6, 7, 6, EXTI6);
86impl_gpio_pin!(PH7, 7, 7, EXTI7);
87impl_gpio_pin!(PH8, 7, 8, EXTI8);
88impl_gpio_pin!(PH9, 7, 9, EXTI9);
89impl_gpio_pin!(PH10, 7, 10, EXTI10);
90impl_gpio_pin!(PH11, 7, 11, EXTI11);
91impl_gpio_pin!(PH12, 7, 12, EXTI12);
92impl_gpio_pin!(PH13, 7, 13, EXTI13);
93impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412rg.rs b/embassy-stm32/src/chip/stm32f412rg.rs
index 93375bf7b..d1042c8c0 100644
--- a/embassy-stm32/src/chip/stm32f412rg.rs
+++ b/embassy-stm32/src/chip/stm32f412rg.rs
@@ -1,4 +1,94 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
9 PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4,
10 SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
11 TIM8, TIM9, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
12);
13pub const GPIO_BASE: usize = 0x40020000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PH0, 7, 0, EXTI0);
80impl_gpio_pin!(PH1, 7, 1, EXTI1);
81impl_gpio_pin!(PH2, 7, 2, EXTI2);
82impl_gpio_pin!(PH3, 7, 3, EXTI3);
83impl_gpio_pin!(PH4, 7, 4, EXTI4);
84impl_gpio_pin!(PH5, 7, 5, EXTI5);
85impl_gpio_pin!(PH6, 7, 6, EXTI6);
86impl_gpio_pin!(PH7, 7, 7, EXTI7);
87impl_gpio_pin!(PH8, 7, 8, EXTI8);
88impl_gpio_pin!(PH9, 7, 9, EXTI9);
89impl_gpio_pin!(PH10, 7, 10, EXTI10);
90impl_gpio_pin!(PH11, 7, 11, EXTI11);
91impl_gpio_pin!(PH12, 7, 12, EXTI12);
92impl_gpio_pin!(PH13, 7, 13, EXTI13);
93impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412ve.rs b/embassy-stm32/src/chip/stm32f412ve.rs
index 93375bf7b..8e60900ab 100644
--- a/embassy-stm32/src/chip/stm32f412ve.rs
+++ b/embassy-stm32/src/chip/stm32f412ve.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12, PF13,
10 PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13, PG14,
11 PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15,
12 I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG,
13 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9,
14 USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412vg.rs b/embassy-stm32/src/chip/stm32f412vg.rs
index 93375bf7b..8e60900ab 100644
--- a/embassy-stm32/src/chip/stm32f412vg.rs
+++ b/embassy-stm32/src/chip/stm32f412vg.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12, PF13,
10 PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13, PG14,
11 PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15,
12 I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG,
13 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9,
14 USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412ze.rs b/embassy-stm32/src/chip/stm32f412ze.rs
index 93375bf7b..8e60900ab 100644
--- a/embassy-stm32/src/chip/stm32f412ze.rs
+++ b/embassy-stm32/src/chip/stm32f412ze.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12, PF13,
10 PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13, PG14,
11 PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15,
12 I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG,
13 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9,
14 USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f412zg.rs b/embassy-stm32/src/chip/stm32f412zg.rs
index 93375bf7b..8e60900ab 100644
--- a/embassy-stm32/src/chip/stm32f412zg.rs
+++ b/embassy-stm32/src/chip/stm32f412zg.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12, PF13,
10 PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13, PG14,
11 PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14, PH15,
12 I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG,
13 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9,
14 USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413cg.rs b/embassy-stm32/src/chip/stm32f413cg.rs
index 93375bf7b..a163f487c 100644
--- a/embassy-stm32/src/chip/stm32f413cg.rs
+++ b/embassy-stm32/src/chip/stm32f413cg.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
13 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
14 TIM9, UART4, UART5, UART7, USART1, USART2, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413ch.rs b/embassy-stm32/src/chip/stm32f413ch.rs
index 93375bf7b..a163f487c 100644
--- a/embassy-stm32/src/chip/stm32f413ch.rs
+++ b/embassy-stm32/src/chip/stm32f413ch.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
13 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
14 TIM9, UART4, UART5, UART7, USART1, USART2, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413mg.rs b/embassy-stm32/src/chip/stm32f413mg.rs
index 93375bf7b..93a9f9371 100644
--- a/embassy-stm32/src/chip/stm32f413mg.rs
+++ b/embassy-stm32/src/chip/stm32f413mg.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413mh.rs b/embassy-stm32/src/chip/stm32f413mh.rs
index 93375bf7b..93a9f9371 100644
--- a/embassy-stm32/src/chip/stm32f413mh.rs
+++ b/embassy-stm32/src/chip/stm32f413mh.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413rg.rs b/embassy-stm32/src/chip/stm32f413rg.rs
index 93375bf7b..93a9f9371 100644
--- a/embassy-stm32/src/chip/stm32f413rg.rs
+++ b/embassy-stm32/src/chip/stm32f413rg.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413rh.rs b/embassy-stm32/src/chip/stm32f413rh.rs
index 93375bf7b..93a9f9371 100644
--- a/embassy-stm32/src/chip/stm32f413rh.rs
+++ b/embassy-stm32/src/chip/stm32f413rh.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413vg.rs b/embassy-stm32/src/chip/stm32f413vg.rs
index 93375bf7b..19e0fbb8a 100644
--- a/embassy-stm32/src/chip/stm32f413vg.rs
+++ b/embassy-stm32/src/chip/stm32f413vg.rs
@@ -1,4 +1,146 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART10, UART4, UART5, UART7, UART8, UART9, USART1, USART2, USART3, USART6,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413vh.rs b/embassy-stm32/src/chip/stm32f413vh.rs
index 93375bf7b..19e0fbb8a 100644
--- a/embassy-stm32/src/chip/stm32f413vh.rs
+++ b/embassy-stm32/src/chip/stm32f413vh.rs
@@ -1,4 +1,146 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART10, UART4, UART5, UART7, UART8, UART9, USART1, USART2, USART3, USART6,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413zg.rs b/embassy-stm32/src/chip/stm32f413zg.rs
index 93375bf7b..19e0fbb8a 100644
--- a/embassy-stm32/src/chip/stm32f413zg.rs
+++ b/embassy-stm32/src/chip/stm32f413zg.rs
@@ -1,4 +1,146 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART10, UART4, UART5, UART7, UART8, UART9, USART1, USART2, USART3, USART6,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f413zh.rs b/embassy-stm32/src/chip/stm32f413zh.rs
index 93375bf7b..19e0fbb8a 100644
--- a/embassy-stm32/src/chip/stm32f413zh.rs
+++ b/embassy-stm32/src/chip/stm32f413zh.rs
@@ -1,4 +1,146 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3,
13 SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART10, UART4, UART5, UART7, UART8, UART9, USART1, USART2, USART3, USART6,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f415og.rs b/embassy-stm32/src/chip/stm32f415og.rs
index 93375bf7b..3d3ebab98 100644
--- a/embassy-stm32/src/chip/stm32f415og.rs
+++ b/embassy-stm32/src/chip/stm32f415og.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f415rg.rs b/embassy-stm32/src/chip/stm32f415rg.rs
index 93375bf7b..3d3ebab98 100644
--- a/embassy-stm32/src/chip/stm32f415rg.rs
+++ b/embassy-stm32/src/chip/stm32f415rg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f415vg.rs b/embassy-stm32/src/chip/stm32f415vg.rs
index 93375bf7b..3d3ebab98 100644
--- a/embassy-stm32/src/chip/stm32f415vg.rs
+++ b/embassy-stm32/src/chip/stm32f415vg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f415zg.rs b/embassy-stm32/src/chip/stm32f415zg.rs
index 93375bf7b..3d3ebab98 100644
--- a/embassy-stm32/src/chip/stm32f415zg.rs
+++ b/embassy-stm32/src/chip/stm32f415zg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, PA0, PA1, PA2, PA3, PA4, PA5,
5 PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
6 PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12,
10 PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13,
11 PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, PH14,
12 PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, PI15,
13 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f417ie.rs b/embassy-stm32/src/chip/stm32f417ie.rs
index 93375bf7b..57f0d5af1 100644
--- a/embassy-stm32/src/chip/stm32f417ie.rs
+++ b/embassy-stm32/src/chip/stm32f417ie.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, ETH, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f417ig.rs b/embassy-stm32/src/chip/stm32f417ig.rs
index 93375bf7b..57f0d5af1 100644
--- a/embassy-stm32/src/chip/stm32f417ig.rs
+++ b/embassy-stm32/src/chip/stm32f417ig.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, ETH, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f417ve.rs b/embassy-stm32/src/chip/stm32f417ve.rs
index 93375bf7b..57f0d5af1 100644
--- a/embassy-stm32/src/chip/stm32f417ve.rs
+++ b/embassy-stm32/src/chip/stm32f417ve.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, ETH, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f417vg.rs b/embassy-stm32/src/chip/stm32f417vg.rs
index 93375bf7b..57f0d5af1 100644
--- a/embassy-stm32/src/chip/stm32f417vg.rs
+++ b/embassy-stm32/src/chip/stm32f417vg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, ETH, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f417ze.rs b/embassy-stm32/src/chip/stm32f417ze.rs
index 93375bf7b..57f0d5af1 100644
--- a/embassy-stm32/src/chip/stm32f417ze.rs
+++ b/embassy-stm32/src/chip/stm32f417ze.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, ETH, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f417zg.rs b/embassy-stm32/src/chip/stm32f417zg.rs
index 93375bf7b..57f0d5af1 100644
--- a/embassy-stm32/src/chip/stm32f417zg.rs
+++ b/embassy-stm32/src/chip/stm32f417zg.rs
@@ -1,4 +1,162 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, ETH, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SDIO, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM10,
14 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
15 USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_gpio_pin!(PI0, 8, 0, EXTI0);
148impl_gpio_pin!(PI1, 8, 1, EXTI1);
149impl_gpio_pin!(PI2, 8, 2, EXTI2);
150impl_gpio_pin!(PI3, 8, 3, EXTI3);
151impl_gpio_pin!(PI4, 8, 4, EXTI4);
152impl_gpio_pin!(PI5, 8, 5, EXTI5);
153impl_gpio_pin!(PI6, 8, 6, EXTI6);
154impl_gpio_pin!(PI7, 8, 7, EXTI7);
155impl_gpio_pin!(PI8, 8, 8, EXTI8);
156impl_gpio_pin!(PI9, 8, 9, EXTI9);
157impl_gpio_pin!(PI10, 8, 10, EXTI10);
158impl_gpio_pin!(PI11, 8, 11, EXTI11);
159impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f423ch.rs b/embassy-stm32/src/chip/stm32f423ch.rs
index 93375bf7b..9a6a22940 100644
--- a/embassy-stm32/src/chip/stm32f423ch.rs
+++ b/embassy-stm32/src/chip/stm32f423ch.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
13 SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
14 TIM8, TIM9, UART4, UART5, UART7, USART1, USART2, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f423mh.rs b/embassy-stm32/src/chip/stm32f423mh.rs
index 93375bf7b..f3adb255f 100644
--- a/embassy-stm32/src/chip/stm32f423mh.rs
+++ b/embassy-stm32/src/chip/stm32f423mh.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2,
13 SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5,
14 TIM6, TIM7, TIM8, TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f423rh.rs b/embassy-stm32/src/chip/stm32f423rh.rs
index 93375bf7b..f3adb255f 100644
--- a/embassy-stm32/src/chip/stm32f423rh.rs
+++ b/embassy-stm32/src/chip/stm32f423rh.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2,
13 SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5,
14 TIM6, TIM7, TIM8, TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f423vh.rs b/embassy-stm32/src/chip/stm32f423vh.rs
index 93375bf7b..dbfd3cd25 100644
--- a/embassy-stm32/src/chip/stm32f423vh.rs
+++ b/embassy-stm32/src/chip/stm32f423vh.rs
@@ -1,4 +1,146 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2,
13 SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5,
14 TIM6, TIM7, TIM8, TIM9, UART10, UART4, UART5, UART7, UART8, UART9, USART1, USART2, USART3,
15 USART6, USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f423zh.rs b/embassy-stm32/src/chip/stm32f423zh.rs
index 93375bf7b..dbfd3cd25 100644
--- a/embassy-stm32/src/chip/stm32f423zh.rs
+++ b/embassy-stm32/src/chip/stm32f423zh.rs
@@ -1,4 +1,146 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, CAN2, CAN3, DAC, FMPI2C1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2,
13 SPI3, SPI4, SPI5, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5,
14 TIM6, TIM7, TIM8, TIM9, UART10, UART4, UART5, UART7, UART8, UART9, USART1, USART2, USART3,
15 USART6, USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x40020000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427ag.rs b/embassy-stm32/src/chip/stm32f427ag.rs
index 93375bf7b..280501eed 100644
--- a/embassy-stm32/src/chip/stm32f427ag.rs
+++ b/embassy-stm32/src/chip/stm32f427ag.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1,
16 TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427ai.rs b/embassy-stm32/src/chip/stm32f427ai.rs
index 93375bf7b..280501eed 100644
--- a/embassy-stm32/src/chip/stm32f427ai.rs
+++ b/embassy-stm32/src/chip/stm32f427ai.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG, TIM1,
16 TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427ig.rs b/embassy-stm32/src/chip/stm32f427ig.rs
index 93375bf7b..b30fcb0d9 100644
--- a/embassy-stm32/src/chip/stm32f427ig.rs
+++ b/embassy-stm32/src/chip/stm32f427ig.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427ii.rs b/embassy-stm32/src/chip/stm32f427ii.rs
index 93375bf7b..b30fcb0d9 100644
--- a/embassy-stm32/src/chip/stm32f427ii.rs
+++ b/embassy-stm32/src/chip/stm32f427ii.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427vg.rs b/embassy-stm32/src/chip/stm32f427vg.rs
index 93375bf7b..8717ce476 100644
--- a/embassy-stm32/src/chip/stm32f427vg.rs
+++ b/embassy-stm32/src/chip/stm32f427vg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1, TIM10,
16 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
17 UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427vi.rs b/embassy-stm32/src/chip/stm32f427vi.rs
index 93375bf7b..8717ce476 100644
--- a/embassy-stm32/src/chip/stm32f427vi.rs
+++ b/embassy-stm32/src/chip/stm32f427vi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1, TIM10,
16 TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4, UART5,
17 UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427zg.rs b/embassy-stm32/src/chip/stm32f427zg.rs
index 93375bf7b..b30fcb0d9 100644
--- a/embassy-stm32/src/chip/stm32f427zg.rs
+++ b/embassy-stm32/src/chip/stm32f427zg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f427zi.rs b/embassy-stm32/src/chip/stm32f427zi.rs
index 93375bf7b..b30fcb0d9 100644
--- a/embassy-stm32/src/chip/stm32f427zi.rs
+++ b/embassy-stm32/src/chip/stm32f427zi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ag.rs b/embassy-stm32/src/chip/stm32f429ag.rs
index 93375bf7b..c60246893 100644
--- a/embassy-stm32/src/chip/stm32f429ag.rs
+++ b/embassy-stm32/src/chip/stm32f429ag.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ai.rs b/embassy-stm32/src/chip/stm32f429ai.rs
index 93375bf7b..c60246893 100644
--- a/embassy-stm32/src/chip/stm32f429ai.rs
+++ b/embassy-stm32/src/chip/stm32f429ai.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429be.rs b/embassy-stm32/src/chip/stm32f429be.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429be.rs
+++ b/embassy-stm32/src/chip/stm32f429be.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429bg.rs b/embassy-stm32/src/chip/stm32f429bg.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429bg.rs
+++ b/embassy-stm32/src/chip/stm32f429bg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429bi.rs b/embassy-stm32/src/chip/stm32f429bi.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429bi.rs
+++ b/embassy-stm32/src/chip/stm32f429bi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ie.rs b/embassy-stm32/src/chip/stm32f429ie.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429ie.rs
+++ b/embassy-stm32/src/chip/stm32f429ie.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ig.rs b/embassy-stm32/src/chip/stm32f429ig.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429ig.rs
+++ b/embassy-stm32/src/chip/stm32f429ig.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ii.rs b/embassy-stm32/src/chip/stm32f429ii.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429ii.rs
+++ b/embassy-stm32/src/chip/stm32f429ii.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ne.rs b/embassy-stm32/src/chip/stm32f429ne.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429ne.rs
+++ b/embassy-stm32/src/chip/stm32f429ne.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ng.rs b/embassy-stm32/src/chip/stm32f429ng.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429ng.rs
+++ b/embassy-stm32/src/chip/stm32f429ng.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ni.rs b/embassy-stm32/src/chip/stm32f429ni.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429ni.rs
+++ b/embassy-stm32/src/chip/stm32f429ni.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ve.rs b/embassy-stm32/src/chip/stm32f429ve.rs
index 93375bf7b..3367e13ef 100644
--- a/embassy-stm32/src/chip/stm32f429ve.rs
+++ b/embassy-stm32/src/chip/stm32f429ve.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1,
16 TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429vg.rs b/embassy-stm32/src/chip/stm32f429vg.rs
index 93375bf7b..3367e13ef 100644
--- a/embassy-stm32/src/chip/stm32f429vg.rs
+++ b/embassy-stm32/src/chip/stm32f429vg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1,
16 TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429vi.rs b/embassy-stm32/src/chip/stm32f429vi.rs
index 93375bf7b..3367e13ef 100644
--- a/embassy-stm32/src/chip/stm32f429vi.rs
+++ b/embassy-stm32/src/chip/stm32f429vi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1,
16 TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429ze.rs b/embassy-stm32/src/chip/stm32f429ze.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429ze.rs
+++ b/embassy-stm32/src/chip/stm32f429ze.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429zg.rs b/embassy-stm32/src/chip/stm32f429zg.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429zg.rs
+++ b/embassy-stm32/src/chip/stm32f429zg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f429zi.rs b/embassy-stm32/src/chip/stm32f429zi.rs
index 93375bf7b..fa542aa4b 100644
--- a/embassy-stm32/src/chip/stm32f429zi.rs
+++ b/embassy-stm32/src/chip/stm32f429zi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f437ai.rs b/embassy-stm32/src/chip/stm32f437ai.rs
index 93375bf7b..0dcbd97ba 100644
--- a/embassy-stm32/src/chip/stm32f437ai.rs
+++ b/embassy-stm32/src/chip/stm32f437ai.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f437ig.rs b/embassy-stm32/src/chip/stm32f437ig.rs
index 93375bf7b..33332f797 100644
--- a/embassy-stm32/src/chip/stm32f437ig.rs
+++ b/embassy-stm32/src/chip/stm32f437ig.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f437ii.rs b/embassy-stm32/src/chip/stm32f437ii.rs
index 93375bf7b..33332f797 100644
--- a/embassy-stm32/src/chip/stm32f437ii.rs
+++ b/embassy-stm32/src/chip/stm32f437ii.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f437vg.rs b/embassy-stm32/src/chip/stm32f437vg.rs
index 93375bf7b..becff0fe1 100644
--- a/embassy-stm32/src/chip/stm32f437vg.rs
+++ b/embassy-stm32/src/chip/stm32f437vg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1,
16 TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f437vi.rs b/embassy-stm32/src/chip/stm32f437vi.rs
index 93375bf7b..becff0fe1 100644
--- a/embassy-stm32/src/chip/stm32f437vi.rs
+++ b/embassy-stm32/src/chip/stm32f437vi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG, TIM1,
16 TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f437zg.rs b/embassy-stm32/src/chip/stm32f437zg.rs
index 93375bf7b..33332f797 100644
--- a/embassy-stm32/src/chip/stm32f437zg.rs
+++ b/embassy-stm32/src/chip/stm32f437zg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f437zi.rs b/embassy-stm32/src/chip/stm32f437zi.rs
index 93375bf7b..33332f797 100644
--- a/embassy-stm32/src/chip/stm32f437zi.rs
+++ b/embassy-stm32/src/chip/stm32f437zi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439ai.rs b/embassy-stm32/src/chip/stm32f439ai.rs
index 93375bf7b..d4025d05a 100644
--- a/embassy-stm32/src/chip/stm32f439ai.rs
+++ b/embassy-stm32/src/chip/stm32f439ai.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439bg.rs b/embassy-stm32/src/chip/stm32f439bg.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439bg.rs
+++ b/embassy-stm32/src/chip/stm32f439bg.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439bi.rs b/embassy-stm32/src/chip/stm32f439bi.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439bi.rs
+++ b/embassy-stm32/src/chip/stm32f439bi.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439ig.rs b/embassy-stm32/src/chip/stm32f439ig.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439ig.rs
+++ b/embassy-stm32/src/chip/stm32f439ig.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439ii.rs b/embassy-stm32/src/chip/stm32f439ii.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439ii.rs
+++ b/embassy-stm32/src/chip/stm32f439ii.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439ng.rs b/embassy-stm32/src/chip/stm32f439ng.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439ng.rs
+++ b/embassy-stm32/src/chip/stm32f439ng.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439ni.rs b/embassy-stm32/src/chip/stm32f439ni.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439ni.rs
+++ b/embassy-stm32/src/chip/stm32f439ni.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439vg.rs b/embassy-stm32/src/chip/stm32f439vg.rs
index 93375bf7b..867069c55 100644
--- a/embassy-stm32/src/chip/stm32f439vg.rs
+++ b/embassy-stm32/src/chip/stm32f439vg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439vi.rs b/embassy-stm32/src/chip/stm32f439vi.rs
index 93375bf7b..867069c55 100644
--- a/embassy-stm32/src/chip/stm32f439vi.rs
+++ b/embassy-stm32/src/chip/stm32f439vi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439zg.rs b/embassy-stm32/src/chip/stm32f439zg.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439zg.rs
+++ b/embassy-stm32/src/chip/stm32f439zg.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f439zi.rs b/embassy-stm32/src/chip/stm32f439zi.rs
index 93375bf7b..26b37ef0e 100644
--- a/embassy-stm32/src/chip/stm32f439zi.rs
+++ b/embassy-stm32/src/chip/stm32f439zi.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446mc.rs b/embassy-stm32/src/chip/stm32f446mc.rs
index 93375bf7b..0556fbe60 100644
--- a/embassy-stm32/src/chip/stm32f446mc.rs
+++ b/embassy-stm32/src/chip/stm32f446mc.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SAI2, SDIO, SPDIFRX, SPI1, SPI2,
13 SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446me.rs b/embassy-stm32/src/chip/stm32f446me.rs
index 93375bf7b..0556fbe60 100644
--- a/embassy-stm32/src/chip/stm32f446me.rs
+++ b/embassy-stm32/src/chip/stm32f446me.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SAI2, SDIO, SPDIFRX, SPI1, SPI2,
13 SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446rc.rs b/embassy-stm32/src/chip/stm32f446rc.rs
index 93375bf7b..74a1aab41 100644
--- a/embassy-stm32/src/chip/stm32f446rc.rs
+++ b/embassy-stm32/src/chip/stm32f446rc.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SDIO, SPDIFRX, SPI1, SPI2, SPI3,
13 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
14 TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446re.rs b/embassy-stm32/src/chip/stm32f446re.rs
index 93375bf7b..74a1aab41 100644
--- a/embassy-stm32/src/chip/stm32f446re.rs
+++ b/embassy-stm32/src/chip/stm32f446re.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SDIO, SPDIFRX, SPI1, SPI2, SPI3,
13 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
14 TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446vc.rs b/embassy-stm32/src/chip/stm32f446vc.rs
index 93375bf7b..0556fbe60 100644
--- a/embassy-stm32/src/chip/stm32f446vc.rs
+++ b/embassy-stm32/src/chip/stm32f446vc.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SAI2, SDIO, SPDIFRX, SPI1, SPI2,
13 SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446ve.rs b/embassy-stm32/src/chip/stm32f446ve.rs
index 93375bf7b..0556fbe60 100644
--- a/embassy-stm32/src/chip/stm32f446ve.rs
+++ b/embassy-stm32/src/chip/stm32f446ve.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SAI2, SDIO, SPDIFRX, SPI1, SPI2,
13 SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446zc.rs b/embassy-stm32/src/chip/stm32f446zc.rs
index 93375bf7b..0556fbe60 100644
--- a/embassy-stm32/src/chip/stm32f446zc.rs
+++ b/embassy-stm32/src/chip/stm32f446zc.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SAI2, SDIO, SPDIFRX, SPI1, SPI2,
13 SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f446ze.rs b/embassy-stm32/src/chip/stm32f446ze.rs
index 93375bf7b..0556fbe60 100644
--- a/embassy-stm32/src/chip/stm32f446ze.rs
+++ b/embassy-stm32/src/chip/stm32f446ze.rs
@@ -1,4 +1,145 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, FMPI2C1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, QUADSPI, RCC, RTC, SAI1, SAI2, SDIO, SPDIFRX, SPI1, SPI2,
13 SPI3, SPI4, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
14 TIM7, TIM8, TIM9, UART4, UART5, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
15);
16pub const GPIO_BASE: usize = 0x40020000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ae.rs b/embassy-stm32/src/chip/stm32f469ae.rs
index 93375bf7b..7e9e2d1c0 100644
--- a/embassy-stm32/src/chip/stm32f469ae.rs
+++ b/embassy-stm32/src/chip/stm32f469ae.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ag.rs b/embassy-stm32/src/chip/stm32f469ag.rs
index 93375bf7b..7e9e2d1c0 100644
--- a/embassy-stm32/src/chip/stm32f469ag.rs
+++ b/embassy-stm32/src/chip/stm32f469ag.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ai.rs b/embassy-stm32/src/chip/stm32f469ai.rs
index 93375bf7b..7e9e2d1c0 100644
--- a/embassy-stm32/src/chip/stm32f469ai.rs
+++ b/embassy-stm32/src/chip/stm32f469ai.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI6,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469be.rs b/embassy-stm32/src/chip/stm32f469be.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469be.rs
+++ b/embassy-stm32/src/chip/stm32f469be.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469bg.rs b/embassy-stm32/src/chip/stm32f469bg.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469bg.rs
+++ b/embassy-stm32/src/chip/stm32f469bg.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469bi.rs b/embassy-stm32/src/chip/stm32f469bi.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469bi.rs
+++ b/embassy-stm32/src/chip/stm32f469bi.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ie.rs b/embassy-stm32/src/chip/stm32f469ie.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469ie.rs
+++ b/embassy-stm32/src/chip/stm32f469ie.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ig.rs b/embassy-stm32/src/chip/stm32f469ig.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469ig.rs
+++ b/embassy-stm32/src/chip/stm32f469ig.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ii.rs b/embassy-stm32/src/chip/stm32f469ii.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469ii.rs
+++ b/embassy-stm32/src/chip/stm32f469ii.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ne.rs b/embassy-stm32/src/chip/stm32f469ne.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469ne.rs
+++ b/embassy-stm32/src/chip/stm32f469ne.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ng.rs b/embassy-stm32/src/chip/stm32f469ng.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469ng.rs
+++ b/embassy-stm32/src/chip/stm32f469ng.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ni.rs b/embassy-stm32/src/chip/stm32f469ni.rs
index 93375bf7b..8b41f36e3 100644
--- a/embassy-stm32/src/chip/stm32f469ni.rs
+++ b/embassy-stm32/src/chip/stm32f469ni.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, ETH, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SPI5,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ve.rs b/embassy-stm32/src/chip/stm32f469ve.rs
index 93375bf7b..2b201fa0d 100644
--- a/embassy-stm32/src/chip/stm32f469ve.rs
+++ b/embassy-stm32/src/chip/stm32f469ve.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469vg.rs b/embassy-stm32/src/chip/stm32f469vg.rs
index 93375bf7b..2b201fa0d 100644
--- a/embassy-stm32/src/chip/stm32f469vg.rs
+++ b/embassy-stm32/src/chip/stm32f469vg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469vi.rs b/embassy-stm32/src/chip/stm32f469vi.rs
index 93375bf7b..2b201fa0d 100644
--- a/embassy-stm32/src/chip/stm32f469vi.rs
+++ b/embassy-stm32/src/chip/stm32f469vi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469ze.rs b/embassy-stm32/src/chip/stm32f469ze.rs
index 93375bf7b..e78ca10ed 100644
--- a/embassy-stm32/src/chip/stm32f469ze.rs
+++ b/embassy-stm32/src/chip/stm32f469ze.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469zg.rs b/embassy-stm32/src/chip/stm32f469zg.rs
index 93375bf7b..e78ca10ed 100644
--- a/embassy-stm32/src/chip/stm32f469zg.rs
+++ b/embassy-stm32/src/chip/stm32f469zg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f469zi.rs b/embassy-stm32/src/chip/stm32f469zi.rs
index 93375bf7b..e78ca10ed 100644
--- a/embassy-stm32/src/chip/stm32f469zi.rs
+++ b/embassy-stm32/src/chip/stm32f469zi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, DAC, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14, PJ15,
14 PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15, I2C1,
15 I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4, SYSCFG,
16 TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TIM9, UART4,
17 UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479ag.rs b/embassy-stm32/src/chip/stm32f479ag.rs
index 93375bf7b..f3142744c 100644
--- a/embassy-stm32/src/chip/stm32f479ag.rs
+++ b/embassy-stm32/src/chip/stm32f479ag.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479ai.rs b/embassy-stm32/src/chip/stm32f479ai.rs
index 93375bf7b..f3142744c 100644
--- a/embassy-stm32/src/chip/stm32f479ai.rs
+++ b/embassy-stm32/src/chip/stm32f479ai.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7,
17 TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS,
18 WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479bg.rs b/embassy-stm32/src/chip/stm32f479bg.rs
index 93375bf7b..6ed4ddebc 100644
--- a/embassy-stm32/src/chip/stm32f479bg.rs
+++ b/embassy-stm32/src/chip/stm32f479bg.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI5, SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
17 TIM7, TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS,
18 USB_OTG_HS, WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479bi.rs b/embassy-stm32/src/chip/stm32f479bi.rs
index 93375bf7b..6ed4ddebc 100644
--- a/embassy-stm32/src/chip/stm32f479bi.rs
+++ b/embassy-stm32/src/chip/stm32f479bi.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI5, SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
17 TIM7, TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS,
18 USB_OTG_HS, WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479ig.rs b/embassy-stm32/src/chip/stm32f479ig.rs
index 93375bf7b..6ed4ddebc 100644
--- a/embassy-stm32/src/chip/stm32f479ig.rs
+++ b/embassy-stm32/src/chip/stm32f479ig.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI5, SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
17 TIM7, TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS,
18 USB_OTG_HS, WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479ii.rs b/embassy-stm32/src/chip/stm32f479ii.rs
index 93375bf7b..6ed4ddebc 100644
--- a/embassy-stm32/src/chip/stm32f479ii.rs
+++ b/embassy-stm32/src/chip/stm32f479ii.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI5, SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
17 TIM7, TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS,
18 USB_OTG_HS, WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479ng.rs b/embassy-stm32/src/chip/stm32f479ng.rs
index 93375bf7b..6ed4ddebc 100644
--- a/embassy-stm32/src/chip/stm32f479ng.rs
+++ b/embassy-stm32/src/chip/stm32f479ng.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI5, SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
17 TIM7, TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS,
18 USB_OTG_HS, WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479ni.rs b/embassy-stm32/src/chip/stm32f479ni.rs
index 93375bf7b..6ed4ddebc 100644
--- a/embassy-stm32/src/chip/stm32f479ni.rs
+++ b/embassy-stm32/src/chip/stm32f479ni.rs
@@ -1,4 +1,197 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, ETH, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SPI5, SPI6, SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6,
17 TIM7, TIM8, TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS,
18 USB_OTG_HS, WWDG
19);
20pub const GPIO_BASE: usize = 0x40020000;
21pub const GPIO_STRIDE: usize = 0x400;
22impl_gpio_pin!(PA0, 0, 0, EXTI0);
23impl_gpio_pin!(PA1, 0, 1, EXTI1);
24impl_gpio_pin!(PA2, 0, 2, EXTI2);
25impl_gpio_pin!(PA3, 0, 3, EXTI3);
26impl_gpio_pin!(PA4, 0, 4, EXTI4);
27impl_gpio_pin!(PA5, 0, 5, EXTI5);
28impl_gpio_pin!(PA6, 0, 6, EXTI6);
29impl_gpio_pin!(PA7, 0, 7, EXTI7);
30impl_gpio_pin!(PA8, 0, 8, EXTI8);
31impl_gpio_pin!(PA9, 0, 9, EXTI9);
32impl_gpio_pin!(PA10, 0, 10, EXTI10);
33impl_gpio_pin!(PA11, 0, 11, EXTI11);
34impl_gpio_pin!(PA12, 0, 12, EXTI12);
35impl_gpio_pin!(PA13, 0, 13, EXTI13);
36impl_gpio_pin!(PA14, 0, 14, EXTI14);
37impl_gpio_pin!(PA15, 0, 15, EXTI15);
38impl_gpio_pin!(PB0, 1, 0, EXTI0);
39impl_gpio_pin!(PB1, 1, 1, EXTI1);
40impl_gpio_pin!(PB2, 1, 2, EXTI2);
41impl_gpio_pin!(PB3, 1, 3, EXTI3);
42impl_gpio_pin!(PB4, 1, 4, EXTI4);
43impl_gpio_pin!(PB5, 1, 5, EXTI5);
44impl_gpio_pin!(PB6, 1, 6, EXTI6);
45impl_gpio_pin!(PB7, 1, 7, EXTI7);
46impl_gpio_pin!(PB8, 1, 8, EXTI8);
47impl_gpio_pin!(PB9, 1, 9, EXTI9);
48impl_gpio_pin!(PB10, 1, 10, EXTI10);
49impl_gpio_pin!(PB11, 1, 11, EXTI11);
50impl_gpio_pin!(PB12, 1, 12, EXTI12);
51impl_gpio_pin!(PB13, 1, 13, EXTI13);
52impl_gpio_pin!(PB14, 1, 14, EXTI14);
53impl_gpio_pin!(PB15, 1, 15, EXTI15);
54impl_gpio_pin!(PC0, 2, 0, EXTI0);
55impl_gpio_pin!(PC1, 2, 1, EXTI1);
56impl_gpio_pin!(PC2, 2, 2, EXTI2);
57impl_gpio_pin!(PC3, 2, 3, EXTI3);
58impl_gpio_pin!(PC4, 2, 4, EXTI4);
59impl_gpio_pin!(PC5, 2, 5, EXTI5);
60impl_gpio_pin!(PC6, 2, 6, EXTI6);
61impl_gpio_pin!(PC7, 2, 7, EXTI7);
62impl_gpio_pin!(PC8, 2, 8, EXTI8);
63impl_gpio_pin!(PC9, 2, 9, EXTI9);
64impl_gpio_pin!(PC10, 2, 10, EXTI10);
65impl_gpio_pin!(PC11, 2, 11, EXTI11);
66impl_gpio_pin!(PC12, 2, 12, EXTI12);
67impl_gpio_pin!(PC13, 2, 13, EXTI13);
68impl_gpio_pin!(PC14, 2, 14, EXTI14);
69impl_gpio_pin!(PC15, 2, 15, EXTI15);
70impl_gpio_pin!(PD0, 3, 0, EXTI0);
71impl_gpio_pin!(PD1, 3, 1, EXTI1);
72impl_gpio_pin!(PD2, 3, 2, EXTI2);
73impl_gpio_pin!(PD3, 3, 3, EXTI3);
74impl_gpio_pin!(PD4, 3, 4, EXTI4);
75impl_gpio_pin!(PD5, 3, 5, EXTI5);
76impl_gpio_pin!(PD6, 3, 6, EXTI6);
77impl_gpio_pin!(PD7, 3, 7, EXTI7);
78impl_gpio_pin!(PD8, 3, 8, EXTI8);
79impl_gpio_pin!(PD9, 3, 9, EXTI9);
80impl_gpio_pin!(PD10, 3, 10, EXTI10);
81impl_gpio_pin!(PD11, 3, 11, EXTI11);
82impl_gpio_pin!(PD12, 3, 12, EXTI12);
83impl_gpio_pin!(PD13, 3, 13, EXTI13);
84impl_gpio_pin!(PD14, 3, 14, EXTI14);
85impl_gpio_pin!(PD15, 3, 15, EXTI15);
86impl_gpio_pin!(PE0, 4, 0, EXTI0);
87impl_gpio_pin!(PE1, 4, 1, EXTI1);
88impl_gpio_pin!(PE2, 4, 2, EXTI2);
89impl_gpio_pin!(PE3, 4, 3, EXTI3);
90impl_gpio_pin!(PE4, 4, 4, EXTI4);
91impl_gpio_pin!(PE5, 4, 5, EXTI5);
92impl_gpio_pin!(PE6, 4, 6, EXTI6);
93impl_gpio_pin!(PE7, 4, 7, EXTI7);
94impl_gpio_pin!(PE8, 4, 8, EXTI8);
95impl_gpio_pin!(PE9, 4, 9, EXTI9);
96impl_gpio_pin!(PE10, 4, 10, EXTI10);
97impl_gpio_pin!(PE11, 4, 11, EXTI11);
98impl_gpio_pin!(PE12, 4, 12, EXTI12);
99impl_gpio_pin!(PE13, 4, 13, EXTI13);
100impl_gpio_pin!(PE14, 4, 14, EXTI14);
101impl_gpio_pin!(PE15, 4, 15, EXTI15);
102impl_gpio_pin!(PF0, 5, 0, EXTI0);
103impl_gpio_pin!(PF1, 5, 1, EXTI1);
104impl_gpio_pin!(PF2, 5, 2, EXTI2);
105impl_gpio_pin!(PF3, 5, 3, EXTI3);
106impl_gpio_pin!(PF4, 5, 4, EXTI4);
107impl_gpio_pin!(PF5, 5, 5, EXTI5);
108impl_gpio_pin!(PF6, 5, 6, EXTI6);
109impl_gpio_pin!(PF7, 5, 7, EXTI7);
110impl_gpio_pin!(PF8, 5, 8, EXTI8);
111impl_gpio_pin!(PF9, 5, 9, EXTI9);
112impl_gpio_pin!(PF10, 5, 10, EXTI10);
113impl_gpio_pin!(PF11, 5, 11, EXTI11);
114impl_gpio_pin!(PF12, 5, 12, EXTI12);
115impl_gpio_pin!(PF13, 5, 13, EXTI13);
116impl_gpio_pin!(PF14, 5, 14, EXTI14);
117impl_gpio_pin!(PF15, 5, 15, EXTI15);
118impl_gpio_pin!(PG0, 6, 0, EXTI0);
119impl_gpio_pin!(PG1, 6, 1, EXTI1);
120impl_gpio_pin!(PG2, 6, 2, EXTI2);
121impl_gpio_pin!(PG3, 6, 3, EXTI3);
122impl_gpio_pin!(PG4, 6, 4, EXTI4);
123impl_gpio_pin!(PG5, 6, 5, EXTI5);
124impl_gpio_pin!(PG6, 6, 6, EXTI6);
125impl_gpio_pin!(PG7, 6, 7, EXTI7);
126impl_gpio_pin!(PG8, 6, 8, EXTI8);
127impl_gpio_pin!(PG9, 6, 9, EXTI9);
128impl_gpio_pin!(PG10, 6, 10, EXTI10);
129impl_gpio_pin!(PG11, 6, 11, EXTI11);
130impl_gpio_pin!(PG12, 6, 12, EXTI12);
131impl_gpio_pin!(PG13, 6, 13, EXTI13);
132impl_gpio_pin!(PG14, 6, 14, EXTI14);
133impl_gpio_pin!(PG15, 6, 15, EXTI15);
134impl_gpio_pin!(PH0, 7, 0, EXTI0);
135impl_gpio_pin!(PH1, 7, 1, EXTI1);
136impl_gpio_pin!(PH2, 7, 2, EXTI2);
137impl_gpio_pin!(PH3, 7, 3, EXTI3);
138impl_gpio_pin!(PH4, 7, 4, EXTI4);
139impl_gpio_pin!(PH5, 7, 5, EXTI5);
140impl_gpio_pin!(PH6, 7, 6, EXTI6);
141impl_gpio_pin!(PH7, 7, 7, EXTI7);
142impl_gpio_pin!(PH8, 7, 8, EXTI8);
143impl_gpio_pin!(PH9, 7, 9, EXTI9);
144impl_gpio_pin!(PH10, 7, 10, EXTI10);
145impl_gpio_pin!(PH11, 7, 11, EXTI11);
146impl_gpio_pin!(PH12, 7, 12, EXTI12);
147impl_gpio_pin!(PH13, 7, 13, EXTI13);
148impl_gpio_pin!(PH14, 7, 14, EXTI14);
149impl_gpio_pin!(PH15, 7, 15, EXTI15);
150impl_gpio_pin!(PI0, 8, 0, EXTI0);
151impl_gpio_pin!(PI1, 8, 1, EXTI1);
152impl_gpio_pin!(PI2, 8, 2, EXTI2);
153impl_gpio_pin!(PI3, 8, 3, EXTI3);
154impl_gpio_pin!(PI4, 8, 4, EXTI4);
155impl_gpio_pin!(PI5, 8, 5, EXTI5);
156impl_gpio_pin!(PI6, 8, 6, EXTI6);
157impl_gpio_pin!(PI7, 8, 7, EXTI7);
158impl_gpio_pin!(PI8, 8, 8, EXTI8);
159impl_gpio_pin!(PI9, 8, 9, EXTI9);
160impl_gpio_pin!(PI10, 8, 10, EXTI10);
161impl_gpio_pin!(PI11, 8, 11, EXTI11);
162impl_gpio_pin!(PI12, 8, 12, EXTI12);
163impl_gpio_pin!(PI13, 8, 13, EXTI13);
164impl_gpio_pin!(PI14, 8, 14, EXTI14);
165impl_gpio_pin!(PI15, 8, 15, EXTI15);
166impl_gpio_pin!(PJ0, 9, 0, EXTI0);
167impl_gpio_pin!(PJ1, 9, 1, EXTI1);
168impl_gpio_pin!(PJ2, 9, 2, EXTI2);
169impl_gpio_pin!(PJ3, 9, 3, EXTI3);
170impl_gpio_pin!(PJ4, 9, 4, EXTI4);
171impl_gpio_pin!(PJ5, 9, 5, EXTI5);
172impl_gpio_pin!(PJ6, 9, 6, EXTI6);
173impl_gpio_pin!(PJ7, 9, 7, EXTI7);
174impl_gpio_pin!(PJ8, 9, 8, EXTI8);
175impl_gpio_pin!(PJ9, 9, 9, EXTI9);
176impl_gpio_pin!(PJ10, 9, 10, EXTI10);
177impl_gpio_pin!(PJ11, 9, 11, EXTI11);
178impl_gpio_pin!(PJ12, 9, 12, EXTI12);
179impl_gpio_pin!(PJ13, 9, 13, EXTI13);
180impl_gpio_pin!(PJ14, 9, 14, EXTI14);
181impl_gpio_pin!(PJ15, 9, 15, EXTI15);
182impl_gpio_pin!(PK0, 10, 0, EXTI0);
183impl_gpio_pin!(PK1, 10, 1, EXTI1);
184impl_gpio_pin!(PK2, 10, 2, EXTI2);
185impl_gpio_pin!(PK3, 10, 3, EXTI3);
186impl_gpio_pin!(PK4, 10, 4, EXTI4);
187impl_gpio_pin!(PK5, 10, 5, EXTI5);
188impl_gpio_pin!(PK6, 10, 6, EXTI6);
189impl_gpio_pin!(PK7, 10, 7, EXTI7);
190impl_gpio_pin!(PK8, 10, 8, EXTI8);
191impl_gpio_pin!(PK9, 10, 9, EXTI9);
192impl_gpio_pin!(PK10, 10, 10, EXTI10);
193impl_gpio_pin!(PK11, 10, 11, EXTI11);
194impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479vg.rs b/embassy-stm32/src/chip/stm32f479vg.rs
index 93375bf7b..97f6b9633 100644
--- a/embassy-stm32/src/chip/stm32f479vg.rs
+++ b/embassy-stm32/src/chip/stm32f479vg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479vi.rs b/embassy-stm32/src/chip/stm32f479vi.rs
index 93375bf7b..97f6b9633 100644
--- a/embassy-stm32/src/chip/stm32f479vi.rs
+++ b/embassy-stm32/src/chip/stm32f479vi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479zg.rs b/embassy-stm32/src/chip/stm32f479zg.rs
index 93375bf7b..d027d59c9 100644
--- a/embassy-stm32/src/chip/stm32f479zg.rs
+++ b/embassy-stm32/src/chip/stm32f479zg.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/chip/stm32f479zi.rs b/embassy-stm32/src/chip/stm32f479zi.rs
index 93375bf7b..d027d59c9 100644
--- a/embassy-stm32/src/chip/stm32f479zi.rs
+++ b/embassy-stm32/src/chip/stm32f479zi.rs
@@ -1,4 +1,196 @@
1 1use embassy_extras::peripherals;
2 use embassy_extras::peripherals; 2peripherals!(
3 peripherals!(EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,EXTI6,EXTI7,EXTI8,EXTI9,EXTI10,EXTI11,EXTI12,EXTI13,EXTI14,EXTI15,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15); 3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 \ No newline at end of file 4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, CRYP, DAC, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, PJ0, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7, PJ8, PJ9, PJ10, PJ11, PJ12, PJ13, PJ14,
14 PJ15, PK0, PK1, PK2, PK3, PK4, PK5, PK6, PK7, PK8, PK9, PK10, PK11, PK12, PK13, PK14, PK15,
15 HASH, I2C1, I2C2, I2C3, IWDG, LTDC, QUADSPI, RCC, RNG, RTC, SAI1, SDIO, SPI1, SPI2, SPI3, SPI4,
16 SYSCFG, TIM1, TIM10, TIM11, TIM12, TIM13, TIM14, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8,
17 TIM9, UART4, UART5, UART7, UART8, USART1, USART2, USART3, USART6, USB_OTG_FS, USB_OTG_HS, WWDG
18);
19pub const GPIO_BASE: usize = 0x40020000;
20pub const GPIO_STRIDE: usize = 0x400;
21impl_gpio_pin!(PA0, 0, 0, EXTI0);
22impl_gpio_pin!(PA1, 0, 1, EXTI1);
23impl_gpio_pin!(PA2, 0, 2, EXTI2);
24impl_gpio_pin!(PA3, 0, 3, EXTI3);
25impl_gpio_pin!(PA4, 0, 4, EXTI4);
26impl_gpio_pin!(PA5, 0, 5, EXTI5);
27impl_gpio_pin!(PA6, 0, 6, EXTI6);
28impl_gpio_pin!(PA7, 0, 7, EXTI7);
29impl_gpio_pin!(PA8, 0, 8, EXTI8);
30impl_gpio_pin!(PA9, 0, 9, EXTI9);
31impl_gpio_pin!(PA10, 0, 10, EXTI10);
32impl_gpio_pin!(PA11, 0, 11, EXTI11);
33impl_gpio_pin!(PA12, 0, 12, EXTI12);
34impl_gpio_pin!(PA13, 0, 13, EXTI13);
35impl_gpio_pin!(PA14, 0, 14, EXTI14);
36impl_gpio_pin!(PA15, 0, 15, EXTI15);
37impl_gpio_pin!(PB0, 1, 0, EXTI0);
38impl_gpio_pin!(PB1, 1, 1, EXTI1);
39impl_gpio_pin!(PB2, 1, 2, EXTI2);
40impl_gpio_pin!(PB3, 1, 3, EXTI3);
41impl_gpio_pin!(PB4, 1, 4, EXTI4);
42impl_gpio_pin!(PB5, 1, 5, EXTI5);
43impl_gpio_pin!(PB6, 1, 6, EXTI6);
44impl_gpio_pin!(PB7, 1, 7, EXTI7);
45impl_gpio_pin!(PB8, 1, 8, EXTI8);
46impl_gpio_pin!(PB9, 1, 9, EXTI9);
47impl_gpio_pin!(PB10, 1, 10, EXTI10);
48impl_gpio_pin!(PB11, 1, 11, EXTI11);
49impl_gpio_pin!(PB12, 1, 12, EXTI12);
50impl_gpio_pin!(PB13, 1, 13, EXTI13);
51impl_gpio_pin!(PB14, 1, 14, EXTI14);
52impl_gpio_pin!(PB15, 1, 15, EXTI15);
53impl_gpio_pin!(PC0, 2, 0, EXTI0);
54impl_gpio_pin!(PC1, 2, 1, EXTI1);
55impl_gpio_pin!(PC2, 2, 2, EXTI2);
56impl_gpio_pin!(PC3, 2, 3, EXTI3);
57impl_gpio_pin!(PC4, 2, 4, EXTI4);
58impl_gpio_pin!(PC5, 2, 5, EXTI5);
59impl_gpio_pin!(PC6, 2, 6, EXTI6);
60impl_gpio_pin!(PC7, 2, 7, EXTI7);
61impl_gpio_pin!(PC8, 2, 8, EXTI8);
62impl_gpio_pin!(PC9, 2, 9, EXTI9);
63impl_gpio_pin!(PC10, 2, 10, EXTI10);
64impl_gpio_pin!(PC11, 2, 11, EXTI11);
65impl_gpio_pin!(PC12, 2, 12, EXTI12);
66impl_gpio_pin!(PC13, 2, 13, EXTI13);
67impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69impl_gpio_pin!(PD0, 3, 0, EXTI0);
70impl_gpio_pin!(PD1, 3, 1, EXTI1);
71impl_gpio_pin!(PD2, 3, 2, EXTI2);
72impl_gpio_pin!(PD3, 3, 3, EXTI3);
73impl_gpio_pin!(PD4, 3, 4, EXTI4);
74impl_gpio_pin!(PD5, 3, 5, EXTI5);
75impl_gpio_pin!(PD6, 3, 6, EXTI6);
76impl_gpio_pin!(PD7, 3, 7, EXTI7);
77impl_gpio_pin!(PD8, 3, 8, EXTI8);
78impl_gpio_pin!(PD9, 3, 9, EXTI9);
79impl_gpio_pin!(PD10, 3, 10, EXTI10);
80impl_gpio_pin!(PD11, 3, 11, EXTI11);
81impl_gpio_pin!(PD12, 3, 12, EXTI12);
82impl_gpio_pin!(PD13, 3, 13, EXTI13);
83impl_gpio_pin!(PD14, 3, 14, EXTI14);
84impl_gpio_pin!(PD15, 3, 15, EXTI15);
85impl_gpio_pin!(PE0, 4, 0, EXTI0);
86impl_gpio_pin!(PE1, 4, 1, EXTI1);
87impl_gpio_pin!(PE2, 4, 2, EXTI2);
88impl_gpio_pin!(PE3, 4, 3, EXTI3);
89impl_gpio_pin!(PE4, 4, 4, EXTI4);
90impl_gpio_pin!(PE5, 4, 5, EXTI5);
91impl_gpio_pin!(PE6, 4, 6, EXTI6);
92impl_gpio_pin!(PE7, 4, 7, EXTI7);
93impl_gpio_pin!(PE8, 4, 8, EXTI8);
94impl_gpio_pin!(PE9, 4, 9, EXTI9);
95impl_gpio_pin!(PE10, 4, 10, EXTI10);
96impl_gpio_pin!(PE11, 4, 11, EXTI11);
97impl_gpio_pin!(PE12, 4, 12, EXTI12);
98impl_gpio_pin!(PE13, 4, 13, EXTI13);
99impl_gpio_pin!(PE14, 4, 14, EXTI14);
100impl_gpio_pin!(PE15, 4, 15, EXTI15);
101impl_gpio_pin!(PF0, 5, 0, EXTI0);
102impl_gpio_pin!(PF1, 5, 1, EXTI1);
103impl_gpio_pin!(PF2, 5, 2, EXTI2);
104impl_gpio_pin!(PF3, 5, 3, EXTI3);
105impl_gpio_pin!(PF4, 5, 4, EXTI4);
106impl_gpio_pin!(PF5, 5, 5, EXTI5);
107impl_gpio_pin!(PF6, 5, 6, EXTI6);
108impl_gpio_pin!(PF7, 5, 7, EXTI7);
109impl_gpio_pin!(PF8, 5, 8, EXTI8);
110impl_gpio_pin!(PF9, 5, 9, EXTI9);
111impl_gpio_pin!(PF10, 5, 10, EXTI10);
112impl_gpio_pin!(PF11, 5, 11, EXTI11);
113impl_gpio_pin!(PF12, 5, 12, EXTI12);
114impl_gpio_pin!(PF13, 5, 13, EXTI13);
115impl_gpio_pin!(PF14, 5, 14, EXTI14);
116impl_gpio_pin!(PF15, 5, 15, EXTI15);
117impl_gpio_pin!(PG0, 6, 0, EXTI0);
118impl_gpio_pin!(PG1, 6, 1, EXTI1);
119impl_gpio_pin!(PG2, 6, 2, EXTI2);
120impl_gpio_pin!(PG3, 6, 3, EXTI3);
121impl_gpio_pin!(PG4, 6, 4, EXTI4);
122impl_gpio_pin!(PG5, 6, 5, EXTI5);
123impl_gpio_pin!(PG6, 6, 6, EXTI6);
124impl_gpio_pin!(PG7, 6, 7, EXTI7);
125impl_gpio_pin!(PG8, 6, 8, EXTI8);
126impl_gpio_pin!(PG9, 6, 9, EXTI9);
127impl_gpio_pin!(PG10, 6, 10, EXTI10);
128impl_gpio_pin!(PG11, 6, 11, EXTI11);
129impl_gpio_pin!(PG12, 6, 12, EXTI12);
130impl_gpio_pin!(PG13, 6, 13, EXTI13);
131impl_gpio_pin!(PG14, 6, 14, EXTI14);
132impl_gpio_pin!(PG15, 6, 15, EXTI15);
133impl_gpio_pin!(PH0, 7, 0, EXTI0);
134impl_gpio_pin!(PH1, 7, 1, EXTI1);
135impl_gpio_pin!(PH2, 7, 2, EXTI2);
136impl_gpio_pin!(PH3, 7, 3, EXTI3);
137impl_gpio_pin!(PH4, 7, 4, EXTI4);
138impl_gpio_pin!(PH5, 7, 5, EXTI5);
139impl_gpio_pin!(PH6, 7, 6, EXTI6);
140impl_gpio_pin!(PH7, 7, 7, EXTI7);
141impl_gpio_pin!(PH8, 7, 8, EXTI8);
142impl_gpio_pin!(PH9, 7, 9, EXTI9);
143impl_gpio_pin!(PH10, 7, 10, EXTI10);
144impl_gpio_pin!(PH11, 7, 11, EXTI11);
145impl_gpio_pin!(PH12, 7, 12, EXTI12);
146impl_gpio_pin!(PH13, 7, 13, EXTI13);
147impl_gpio_pin!(PH14, 7, 14, EXTI14);
148impl_gpio_pin!(PH15, 7, 15, EXTI15);
149impl_gpio_pin!(PI0, 8, 0, EXTI0);
150impl_gpio_pin!(PI1, 8, 1, EXTI1);
151impl_gpio_pin!(PI2, 8, 2, EXTI2);
152impl_gpio_pin!(PI3, 8, 3, EXTI3);
153impl_gpio_pin!(PI4, 8, 4, EXTI4);
154impl_gpio_pin!(PI5, 8, 5, EXTI5);
155impl_gpio_pin!(PI6, 8, 6, EXTI6);
156impl_gpio_pin!(PI7, 8, 7, EXTI7);
157impl_gpio_pin!(PI8, 8, 8, EXTI8);
158impl_gpio_pin!(PI9, 8, 9, EXTI9);
159impl_gpio_pin!(PI10, 8, 10, EXTI10);
160impl_gpio_pin!(PI11, 8, 11, EXTI11);
161impl_gpio_pin!(PI12, 8, 12, EXTI12);
162impl_gpio_pin!(PI13, 8, 13, EXTI13);
163impl_gpio_pin!(PI14, 8, 14, EXTI14);
164impl_gpio_pin!(PI15, 8, 15, EXTI15);
165impl_gpio_pin!(PJ0, 9, 0, EXTI0);
166impl_gpio_pin!(PJ1, 9, 1, EXTI1);
167impl_gpio_pin!(PJ2, 9, 2, EXTI2);
168impl_gpio_pin!(PJ3, 9, 3, EXTI3);
169impl_gpio_pin!(PJ4, 9, 4, EXTI4);
170impl_gpio_pin!(PJ5, 9, 5, EXTI5);
171impl_gpio_pin!(PJ6, 9, 6, EXTI6);
172impl_gpio_pin!(PJ7, 9, 7, EXTI7);
173impl_gpio_pin!(PJ8, 9, 8, EXTI8);
174impl_gpio_pin!(PJ9, 9, 9, EXTI9);
175impl_gpio_pin!(PJ10, 9, 10, EXTI10);
176impl_gpio_pin!(PJ11, 9, 11, EXTI11);
177impl_gpio_pin!(PJ12, 9, 12, EXTI12);
178impl_gpio_pin!(PJ13, 9, 13, EXTI13);
179impl_gpio_pin!(PJ14, 9, 14, EXTI14);
180impl_gpio_pin!(PJ15, 9, 15, EXTI15);
181impl_gpio_pin!(PK0, 10, 0, EXTI0);
182impl_gpio_pin!(PK1, 10, 1, EXTI1);
183impl_gpio_pin!(PK2, 10, 2, EXTI2);
184impl_gpio_pin!(PK3, 10, 3, EXTI3);
185impl_gpio_pin!(PK4, 10, 4, EXTI4);
186impl_gpio_pin!(PK5, 10, 5, EXTI5);
187impl_gpio_pin!(PK6, 10, 6, EXTI6);
188impl_gpio_pin!(PK7, 10, 7, EXTI7);
189impl_gpio_pin!(PK8, 10, 8, EXTI8);
190impl_gpio_pin!(PK9, 10, 9, EXTI9);
191impl_gpio_pin!(PK10, 10, 10, EXTI10);
192impl_gpio_pin!(PK11, 10, 11, EXTI11);
193impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15);
diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs
index e0e6cc477..cbe967f6e 100644
--- a/embassy-stm32/src/gpio.rs
+++ b/embassy-stm32/src/gpio.rs
@@ -5,8 +5,8 @@ use embassy_extras::{impl_unborrow, unborrow};
5use embedded_hal::digital::v2::{InputPin, OutputPin, StatefulOutputPin}; 5use embedded_hal::digital::v2::{InputPin, OutputPin, StatefulOutputPin};
6use gpio::vals; 6use gpio::vals;
7 7
8use crate::chip;
8use crate::pac::gpio_v2 as gpio; 9use crate::pac::gpio_v2 as gpio;
9use crate::peripherals;
10 10
11/// Pull setting for an input. 11/// Pull setting for an input.
12#[derive(Debug, Eq, PartialEq)] 12#[derive(Debug, Eq, PartialEq)]
@@ -165,7 +165,7 @@ pub(crate) mod sealed {
165 #[inline] 165 #[inline]
166 fn block(&self) -> gpio::Gpio { 166 fn block(&self) -> gpio::Gpio {
167 // TODO hardcoding peripheral addrs until we figure out how these are handled in the metapac 167 // TODO hardcoding peripheral addrs until we figure out how these are handled in the metapac
168 let p = 0x4002_0000 + (self._port() as u32) * 0x400; 168 let p = chip::GPIO_BASE + (self._port() as usize) * chip::GPIO_STRIDE;
169 gpio::Gpio(p as *mut u8) 169 gpio::Gpio(p as *mut u8)
170 } 170 }
171 171
@@ -298,12 +298,12 @@ impl OptionalPin for NoPin {
298 298
299// ==================== 299// ====================
300 300
301macro_rules! impl_pin { 301macro_rules! impl_gpio_pin {
302 ($type:ident, $port_num:expr, $pin_num:expr, $exti_ch:ident) => { 302 ($type:ident, $port_num:expr, $pin_num:expr, $exti_ch:ident) => {
303 impl Pin for peripherals::$type { 303 impl crate::gpio::Pin for peripherals::$type {
304 type ExtiChannel = peripherals::$exti_ch; 304 type ExtiChannel = peripherals::$exti_ch;
305 } 305 }
306 impl sealed::Pin for peripherals::$type { 306 impl crate::gpio::sealed::Pin for peripherals::$type {
307 #[inline] 307 #[inline]
308 fn pin_port(&self) -> u8 { 308 fn pin_port(&self) -> u8 {
309 $port_num * 16 + $pin_num 309 $port_num * 16 + $pin_num
@@ -311,52 +311,3 @@ macro_rules! impl_pin {
311 } 311 }
312 }; 312 };
313} 313}
314
315impl_pin!(PA0, 0, 0, EXTI0);
316impl_pin!(PA1, 0, 1, EXTI1);
317impl_pin!(PA2, 0, 2, EXTI2);
318impl_pin!(PA3, 0, 3, EXTI3);
319impl_pin!(PA4, 0, 4, EXTI4);
320impl_pin!(PA5, 0, 5, EXTI5);
321impl_pin!(PA6, 0, 6, EXTI6);
322impl_pin!(PA7, 0, 7, EXTI7);
323impl_pin!(PA8, 0, 8, EXTI8);
324impl_pin!(PA9, 0, 9, EXTI9);
325impl_pin!(PA10, 0, 10, EXTI10);
326impl_pin!(PA11, 0, 11, EXTI11);
327impl_pin!(PA12, 0, 12, EXTI12);
328impl_pin!(PA13, 0, 13, EXTI13);
329impl_pin!(PA14, 0, 14, EXTI14);
330impl_pin!(PA15, 0, 15, EXTI15);
331impl_pin!(PB0, 1, 0, EXTI0);
332impl_pin!(PB1, 1, 1, EXTI1);
333impl_pin!(PB2, 1, 2, EXTI2);
334impl_pin!(PB3, 1, 3, EXTI3);
335impl_pin!(PB4, 1, 4, EXTI4);
336impl_pin!(PB5, 1, 5, EXTI5);
337impl_pin!(PB6, 1, 6, EXTI6);
338impl_pin!(PB7, 1, 7, EXTI7);
339impl_pin!(PB8, 1, 8, EXTI8);
340impl_pin!(PB9, 1, 9, EXTI9);
341impl_pin!(PB10, 1, 10, EXTI10);
342impl_pin!(PB11, 1, 11, EXTI11);
343impl_pin!(PB12, 1, 12, EXTI12);
344impl_pin!(PB13, 1, 13, EXTI13);
345impl_pin!(PB14, 1, 14, EXTI14);
346impl_pin!(PB15, 1, 15, EXTI15);
347impl_pin!(PC0, 2, 0, EXTI0);
348impl_pin!(PC1, 2, 1, EXTI1);
349impl_pin!(PC2, 2, 2, EXTI2);
350impl_pin!(PC3, 2, 3, EXTI3);
351impl_pin!(PC4, 2, 4, EXTI4);
352impl_pin!(PC5, 2, 5, EXTI5);
353impl_pin!(PC6, 2, 6, EXTI6);
354impl_pin!(PC7, 2, 7, EXTI7);
355impl_pin!(PC8, 2, 8, EXTI8);
356impl_pin!(PC9, 2, 9, EXTI9);
357impl_pin!(PC10, 2, 10, EXTI10);
358impl_pin!(PC11, 2, 11, EXTI11);
359impl_pin!(PC12, 2, 12, EXTI12);
360impl_pin!(PC13, 2, 13, EXTI13);
361impl_pin!(PC14, 2, 14, EXTI14);
362impl_pin!(PC15, 2, 15, EXTI15);
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index 835135cae..0a1f26ba4 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -6,15 +6,19 @@
6#![feature(type_alias_impl_trait)] 6#![feature(type_alias_impl_trait)]
7#![allow(incomplete_features)] 7#![allow(incomplete_features)]
8 8
9// This must go FIRST so that all the other modules see its macros.
9pub mod fmt; 10pub mod fmt;
10 11
11mod chip; 12pub(crate) use stm32_metapac as pac;
12pub use chip::{peripherals, Peripherals};
13 13
14#[macro_use]
14pub mod exti; 15pub mod exti;
16#[macro_use]
15pub mod gpio; 17pub mod gpio;
16//pub mod rtc; 18//pub mod rtc;
17//pub mod interrupt; 19//pub mod interrupt;
18//pub mod usart; 20//pub mod usart;
19 21
20pub(crate) use stm32_metapac as pac; 22// This must go LAST so that it sees the `impl_foo!` macros
23mod chip;
24pub use chip::{peripherals, Peripherals};
diff --git a/embassy-stm32/stm32-data b/embassy-stm32/stm32-data
Subproject 419646f8703cdafcee51341247f992963bd9af7 Subproject 581f642c79c3c1a87f07ab88bb5bdececcb1240