aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2021-09-15 13:35:22 +0200
committerUlf Lilleengen <[email protected]>2021-09-15 13:58:01 +0200
commit701dd9fa362f31ef23ceeca01f86f92a8ec619b6 (patch)
tree906c8df4038df5fc8200fe7388df0af0787cddce
parent840a83e196ecf698399ca38466087050ca5b15f1 (diff)
Calculate port number based on address and stride
This allows out of order letter to port mapping
-rw-r--r--stm32-metapac-gen/src/lib.rs3
1 files changed, 1 insertions, 2 deletions
diff --git a/stm32-metapac-gen/src/lib.rs b/stm32-metapac-gen/src/lib.rs
index e802ba4ff..df9f525ec 100644
--- a/stm32-metapac-gen/src/lib.rs
+++ b/stm32-metapac-gen/src/lib.rs
@@ -415,8 +415,7 @@ pub fn gen(options: Options) {
415 match bi.module.as_str() { 415 match bi.module.as_str() {
416 "gpio" => { 416 "gpio" => {
417 let port_letter = name.chars().skip(4).next().unwrap(); 417 let port_letter = name.chars().skip(4).next().unwrap();
418 let port_num = port_letter as u32 - 'A' as u32; 418 let port_num = (p.address as u32 - gpio_base) / gpio_stride;
419 assert_eq!(p.address as u32, gpio_base + gpio_stride * port_num);
420 419
421 for pin_num in 0..16 { 420 for pin_num in 0..16 {
422 let pin_name = format!("P{}{}", port_letter, pin_num); 421 let pin_name = format!("P{}{}", port_letter, pin_num);