diff options
| author | Fabian Wolter <[email protected]> | 2025-07-15 09:45:05 +0200 |
|---|---|---|
| committer | Fabian Wolter <[email protected]> | 2025-07-17 21:17:27 +0200 |
| commit | d9f0d80f733abba5d1ca9e1f8b0b81582975d9a1 (patch) | |
| tree | 729b3f9eea914c4aaf297560a5c50c5318c2fcfb | |
| parent | c279063c426b57f22d8bdeb7356b3c541b16bb08 (diff) | |
Make remap value a number
| -rw-r--r-- | embassy-stm32/build.rs | 18 |
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 | ||
