Page 1 of 1

STM32 GPIO LLD register naming issue  Topic is solved

Posted: Mon Oct 14, 2019 11:46 am
by Thargon
Hi,

I just encountered a compilation error when calling palIsLineEventEnabledX() using an STM32L476.

The function is defined identically in all three GPIO LLD versions:

Code: Select all

#define pal_lld_ispadeventenabled(port, pad)                                \
  (bool)((EXTI->IMR & (1U << (uint32_t)pad)) != 0U)

Now the issue is, that IMR is not defined for this microcontroller.
Looking up the EXTI_TypeDef struct in the stm32l476xx.h file reveals that there are in fact two register sets, which include IMR1 and IMR2.
A brief search indicates, that there are probably several microcontrollers affected by this:
  • STM32F3
  • STM32H7
  • STM32L4
Can you confirm the issue, or am I missing something here?

Thomas

Re: STM32 GPIO LLD register naming issue

Posted: Mon Oct 14, 2019 12:10 pm
by Giovanni
Thanks, I need to verify, those headers have a lot of naming differences.

Giovanni

Re: STM32 GPIO LLD register naming issue

Posted: Sat Oct 19, 2019 9:17 am
by Giovanni
Hi,

Fixed as bug #1051 on trunk and 19.1.4. Could you please verify?

Giovanni

Re: STM32 GPIO LLD register naming issue

Posted: Tue Oct 22, 2019 12:51 pm
by Thargon
Hi,

the fix works fine for me. Thank you!