aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/build.rs
diff options
context:
space:
mode:
authorFabian Wolter <[email protected]>2025-07-15 09:45:05 +0200
committerFabian Wolter <[email protected]>2025-07-17 21:17:27 +0200
commitd9f0d80f733abba5d1ca9e1f8b0b81582975d9a1 (patch)
tree729b3f9eea914c4aaf297560a5c50c5318c2fcfb /embassy-stm32/build.rs
parentc279063c426b57f22d8bdeb7356b3c541b16bb08 (diff)
Make remap value a number
Diffstat (limited to 'embassy-stm32/build.rs')
-rw-r--r--embassy-stm32/build.rs18
1 files changed, 14 insertions, 4 deletions
diff --git a/embassy-stm32/build.rs b/embassy-stm32/build.rs
index 068dadf4b..11b3b4479 100644
--- a/embassy-stm32/build.rs
+++ b/embassy-stm32/build.rs
@@ -1557,11 +1557,21 @@ fn main() {
1557 let register = format_ident!("{}", remap_info.register.to_lowercase()); 1557 let register = format_ident!("{}", remap_info.register.to_lowercase());
1558 let setter = format_ident!("set_{}", remap_info.field.to_lowercase()); 1558 let setter = format_ident!("set_{}", remap_info.field.to_lowercase());
1559 1559
1560 let value = if remap_info.value.contains("true") || remap_info.value.contains("false") { 1560 let field_metadata = METADATA
1561 let value = format_ident!("{}", remap_info.value); 1561 .peripherals
1562 quote!(#value) 1562 .iter()
1563 .filter(|p| p.name.eq_ignore_ascii_case(remap_info.peripheral))
1564 .flat_map(|p| p.registers.as_ref().unwrap().ir.fieldsets.iter())
1565 .filter(|f| f.name.eq_ignore_ascii_case(remap_info.register))
1566 .flat_map(|f| f.fields.iter())
1567 .find(|f| f.name.eq_ignore_ascii_case(remap_info.field))
1568 .unwrap();
1569
1570 let value = if field_metadata.bit_size == 1 {
1571 let bool_value = format_ident!("{}", remap_info.value > 0);
1572 quote!(#bool_value)
1563 } else { 1573 } else {
1564 let value = remap_info.value.parse::<u8>().unwrap(); 1574 let value = remap_info.value;
1565 quote!(#value.into()) 1575 quote!(#value.into())
1566 }; 1576 };
1567 1577