diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-06-08 16:08:40 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-06-08 18:00:48 +0200 |
| commit | 921780e6bfb9bcb2cd087b8aa8b094d792c99fa2 (patch) | |
| tree | bd21fba9800471b860ca44e05567588dcc1afef7 /embassy-nrf/src/chips/nrf9160.rs | |
| parent | 87ad66f2b4a5bfd36dfc8d8aad5492e9e3f915e6 (diff) | |
Make interrupt module more standard.
- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`.
- Reexport the PAC interrupt enum in `embassy_xx::interrupt`.
This has a few advantages:
- The `embassy_xx::interrupt` module is now more "standard".
- It works with `cortex-m` functions for manipulating interrupts, for example.
- It works with RTIC.
- the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs.
- When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`.
Diffstat (limited to 'embassy-nrf/src/chips/nrf9160.rs')
| -rw-r--r-- | embassy-nrf/src/chips/nrf9160.rs | 70 |
1 files changed, 33 insertions, 37 deletions
diff --git a/embassy-nrf/src/chips/nrf9160.rs b/embassy-nrf/src/chips/nrf9160.rs index d2b45114f..b6ae78bbe 100644 --- a/embassy-nrf/src/chips/nrf9160.rs +++ b/embassy-nrf/src/chips/nrf9160.rs | |||
| @@ -366,40 +366,36 @@ impl_saadc_input!(P0_18, ANALOG_INPUT5); | |||
| 366 | impl_saadc_input!(P0_19, ANALOG_INPUT6); | 366 | impl_saadc_input!(P0_19, ANALOG_INPUT6); |
| 367 | impl_saadc_input!(P0_20, ANALOG_INPUT7); | 367 | impl_saadc_input!(P0_20, ANALOG_INPUT7); |
| 368 | 368 | ||
| 369 | pub mod irqs { | 369 | embassy_cortex_m::interrupt_mod!( |
| 370 | use embassy_cortex_m::interrupt::_export::declare; | 370 | SPU, |
| 371 | 371 | CLOCK_POWER, | |
| 372 | use crate::pac::Interrupt as InterruptEnum; | 372 | UARTE0_SPIM0_SPIS0_TWIM0_TWIS0, |
| 373 | 373 | UARTE1_SPIM1_SPIS1_TWIM1_TWIS1, | |
| 374 | declare!(SPU); | 374 | UARTE2_SPIM2_SPIS2_TWIM2_TWIS2, |
| 375 | declare!(CLOCK_POWER); | 375 | UARTE3_SPIM3_SPIS3_TWIM3_TWIS3, |
| 376 | declare!(UARTE0_SPIM0_SPIS0_TWIM0_TWIS0); | 376 | GPIOTE0, |
| 377 | declare!(UARTE1_SPIM1_SPIS1_TWIM1_TWIS1); | 377 | SAADC, |
| 378 | declare!(UARTE2_SPIM2_SPIS2_TWIM2_TWIS2); | 378 | TIMER0, |
| 379 | declare!(UARTE3_SPIM3_SPIS3_TWIM3_TWIS3); | 379 | TIMER1, |
| 380 | declare!(GPIOTE0); | 380 | TIMER2, |
| 381 | declare!(SAADC); | 381 | RTC0, |
| 382 | declare!(TIMER0); | 382 | RTC1, |
| 383 | declare!(TIMER1); | 383 | WDT, |
| 384 | declare!(TIMER2); | 384 | EGU0, |
| 385 | declare!(RTC0); | 385 | EGU1, |
| 386 | declare!(RTC1); | 386 | EGU2, |
| 387 | declare!(WDT); | 387 | EGU3, |
| 388 | declare!(EGU0); | 388 | EGU4, |
| 389 | declare!(EGU1); | 389 | EGU5, |
| 390 | declare!(EGU2); | 390 | PWM0, |
| 391 | declare!(EGU3); | 391 | PWM1, |
| 392 | declare!(EGU4); | 392 | PWM2, |
| 393 | declare!(EGU5); | 393 | PDM, |
| 394 | declare!(PWM0); | 394 | PWM3, |
| 395 | declare!(PWM1); | 395 | I2S, |
| 396 | declare!(PWM2); | 396 | IPC, |
| 397 | declare!(PDM); | 397 | FPU, |
| 398 | declare!(PWM3); | 398 | GPIOTE1, |
| 399 | declare!(I2S); | 399 | KMU, |
| 400 | declare!(IPC); | 400 | CRYPTOCELL, |
| 401 | declare!(FPU); | 401 | ); |
| 402 | declare!(GPIOTE1); | ||
| 403 | declare!(KMU); | ||
| 404 | declare!(CRYPTOCELL); | ||
| 405 | } | ||
