diff options
| author | i509VCB <[email protected]> | 2025-10-30 18:11:21 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-10-30 18:11:21 +0000 |
| commit | 9b1add3d83e98c6c9ae9230bf35cd89bba530a20 (patch) | |
| tree | 0fc58eb44606e709e7750404ae18466223e393ab | |
| parent | 2c1c5232e8767887cbad5f28abf9a39ae78dd6c4 (diff) | |
| parent | 102cceb30ec0af85f0fee66ae9e4cba049b5fffd (diff) | |
Merge pull request #4794 from doxxx/gpio-nointr
mspm0: group irq handlers must check for NO_INTR (#4785)
| -rw-r--r-- | embassy-mspm0/CHANGELOG.md | 3 | ||||
| -rw-r--r-- | embassy-mspm0/build.rs | 11 |
2 files changed, 11 insertions, 3 deletions
diff --git a/embassy-mspm0/CHANGELOG.md b/embassy-mspm0/CHANGELOG.md index fcb0f9dbd..d9910a7ab 100644 --- a/embassy-mspm0/CHANGELOG.md +++ b/embassy-mspm0/CHANGELOG.md | |||
| @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
| 7 | 7 | ||
| 8 | <!-- next-header --> | 8 | <!-- next-header --> |
| 9 | ## Unreleased - ReleaseDate | 9 | ## Unreleased - ReleaseDate |
| 10 | 10 | ||
| 11 | - feat: Add I2C Controller (blocking & async) + examples for mspm0l1306, mspm0g3507 (tested MCUs) (#4435) | 11 | - feat: Add I2C Controller (blocking & async) + examples for mspm0l1306, mspm0g3507 (tested MCUs) (#4435) |
| 12 | - fix gpio interrupt not being set for mspm0l110x | 12 | - fix gpio interrupt not being set for mspm0l110x |
| 13 | - feat: Add window watchdog implementation based on WWDT0, WWDT1 peripherals (#4574) | 13 | - feat: Add window watchdog implementation based on WWDT0, WWDT1 peripherals (#4574) |
| @@ -17,3 +17,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
| 17 | - fix: add MSPM0C1106 to build test matrix | 17 | - fix: add MSPM0C1106 to build test matrix |
| 18 | - feat: add MSPM0H3216 support | 18 | - feat: add MSPM0H3216 support |
| 19 | - feat: Add i2c target implementation (#4605) | 19 | - feat: Add i2c target implementation (#4605) |
| 20 | - fix: group irq handlers must check for NO_INTR (#4785) | ||
diff --git a/embassy-mspm0/build.rs b/embassy-mspm0/build.rs index 1d118ad66..4942364aa 100644 --- a/embassy-mspm0/build.rs +++ b/embassy-mspm0/build.rs | |||
| @@ -194,8 +194,15 @@ fn generate_groups() -> TokenStream { | |||
| 194 | use crate::pac::#group_enum; | 194 | use crate::pac::#group_enum; |
| 195 | 195 | ||
| 196 | let group = crate::pac::CPUSS.int_group(#group_number); | 196 | let group = crate::pac::CPUSS.int_group(#group_number); |
| 197 | // MUST subtract by 1 since 0 is NO_INTR | 197 | let stat = group.iidx().read().stat(); |
| 198 | let iidx = group.iidx().read().stat().to_bits() - 1; | 198 | |
| 199 | // check for spurious interrupts | ||
| 200 | if stat == crate::pac::cpuss::vals::Iidx::NO_INTR { | ||
| 201 | return; | ||
| 202 | } | ||
| 203 | |||
| 204 | // MUST subtract by 1 because NO_INTR offsets IIDX values. | ||
| 205 | let iidx = stat.to_bits() - 1; | ||
| 199 | 206 | ||
| 200 | let Ok(group) = #group_enum::try_from(iidx as u8) else { | 207 | let Ok(group) = #group_enum::try_from(iidx as u8) else { |
| 201 | return; | 208 | return; |
