diff options
| author | Matous Hybl <[email protected]> | 2021-10-22 11:35:46 +0200 |
|---|---|---|
| committer | Matous Hybl <[email protected]> | 2021-10-22 11:36:47 +0200 |
| commit | 4fbac401206500327eed532bd9f46b8d58f4300a (patch) | |
| tree | fb8873ad51a64dd39a629de49201fe994002cb2a | |
| parent | b22c472af3a7e88c2855e6de216dcfa15ff155d1 (diff) | |
Workaround duplicity of DMA channel declaration when the target chip specifies more than one request, by processing only the first declared request for the channel.
| -rw-r--r-- | stm32-metapac-gen/src/lib.rs | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/stm32-metapac-gen/src/lib.rs b/stm32-metapac-gen/src/lib.rs index 5c0f1d00c..79dd734ce 100644 --- a/stm32-metapac-gen/src/lib.rs +++ b/stm32-metapac-gen/src/lib.rs | |||
| @@ -379,19 +379,27 @@ pub fn gen(options: Options) { | |||
| 379 | row.push(bi.module.clone()); | 379 | row.push(bi.module.clone()); |
| 380 | row.push(bi.block.clone()); | 380 | row.push(bi.block.clone()); |
| 381 | row.push(request.clone()); | 381 | row.push(request.clone()); |
| 382 | if let Some(channel) = &channel.channel { | 382 | row.push(if let Some(channel) = &channel.channel { |
| 383 | row.push(format!("{{channel: {}}}", channel)); | 383 | format!("{{channel: {}}}", channel) |
| 384 | } else if let Some(dmamux) = &channel.dmamux { | 384 | } else if let Some(dmamux) = &channel.dmamux { |
| 385 | row.push(format!("{{dmamux: {}}}", dmamux)); | 385 | format!("{{dmamux: {}}}", dmamux) |
| 386 | } else { | 386 | } else { |
| 387 | unreachable!(); | 387 | unreachable!(); |
| 388 | } | 388 | }); |
| 389 | if let Some(request) = channel.request { | 389 | |
| 390 | row.push(request.to_string()); | 390 | row.push(if let Some(request) = channel.request { |
| 391 | request.to_string() | ||
| 391 | } else { | 392 | } else { |
| 392 | row.push("()".to_string()); | 393 | "()".to_string() |
| 394 | }); | ||
| 395 | |||
| 396 | if peripheral_dma_channels_table | ||
| 397 | .iter() | ||
| 398 | .find(|a| a[..a.len() - 1] == row[..row.len() - 1]) | ||
| 399 | .is_none() | ||
| 400 | { | ||
| 401 | peripheral_dma_channels_table.push(row); | ||
| 393 | } | 402 | } |
| 394 | peripheral_dma_channels_table.push(row); | ||
| 395 | } | 403 | } |
| 396 | } | 404 | } |
| 397 | 405 | ||
