From f96db3d9d2828086c56f61d33c9d9ae6db4e3b2d Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 21 May 2021 19:29:37 +0200 Subject: [PATCH] Remove ad-hoc imports from generated code. --- embassy-stm32/gen.py | 9 ++------- embassy-stm32/src/exti.rs | 3 +++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/embassy-stm32/gen.py b/embassy-stm32/gen.py index 40904e3c..c344df49 100644 --- a/embassy-stm32/gen.py +++ b/embassy-stm32/gen.py @@ -57,7 +57,7 @@ for chip in chips.values(): af = gpio_afs[chip['gpio_af']] peripheral_names = [] # USART1, PA5, EXTI8 - exti_interrupts = [] # EXTI IRQs, EXTI0, EXTI4_15 etc. + exti_interrupts = [] # EXTI IRQs, EXTI0, EXTI4_15 etc. peripheral_versions = {} # usart -> v1, syscfg -> f4 pins = set() # set of all present pins. PA4, PA5... @@ -118,7 +118,7 @@ for chip in chips.values(): if block_mod == 'rng': for irq in chip['interrupts']: if re.search('RNG', irq): - f.write(f'impl_rng!({name}, ' + irq + f');') + f.write(f'impl_rng!({name}, {irq});') if block_mod == 'spi': if 'clock' in peri: @@ -182,7 +182,6 @@ for chip in chips.values(): if func := funcs.get(f'{name}_D7'): f.write(f'impl_sdmmc_pin!({name}, D7Pin, {pin}, {func});') - if block_mod == 'exti': for irq in chip['interrupts']: if re.match('EXTI', irq): @@ -201,7 +200,6 @@ for chip in chips.values(): peripherals!({','.join(peripheral_names)}); """) - # ========= DMA peripherals if num_dmas > 0: f.write(f""" @@ -219,9 +217,6 @@ for chip in chips.values(): # ========= exti interrupts f.write(f""" - use embassy::interrupt::Interrupt; - use embassy::interrupt::InterruptExt; - impl_exti_irq!({','.join(exti_interrupts)}); """) diff --git a/embassy-stm32/src/exti.rs b/embassy-stm32/src/exti.rs index 83245f84..0b74fe05 100644 --- a/embassy-stm32/src/exti.rs +++ b/embassy-stm32/src/exti.rs @@ -216,6 +216,9 @@ macro_rules! impl_exti_irq { ($($e:ident),+) => { /// safety: must be called only once pub(crate) unsafe fn init_exti() { + use embassy::interrupt::Interrupt; + use embassy::interrupt::InterruptExt; + $( crate::interrupt::$e::steal().enable(); )+