I believe I may have found another problem with the STM32F105 HAL. This time concerning the EXT module.
I encountered it in ChibiOs stable 16.1.5. I have not actuallly compiled with latest trunk to test it there (as it requires several other modifications for me to go from 16.1.5 to trunk. Want to stay on stable versions as far as possible). However from looking at the sources I believe it to be a problem in the trunk as well. If required I can test this as well, but I fear I do not have the time at my hands at the moment. If you need me to test it against the trunk please let me know, and I will do so as soon as I can and get back to you.
[r9813] :trunk/os/hal/ports/STM32/STM32F1xx/hal_ext_lld_isr.c -- ext_lld_exti_irq_enable() -- starting at line 322:
Code: Select all
#if defined(STM32F10X_CL)
/* EXTI vectors specific to STM32F1xx Connectivity Line.*/
nvicEnableVector(OTG_FS_WKUP_IRQn, STM32_EXT_EXTI18_IRQ_PRIORITY);
nvicEnableVector(ETH_WKUP_IRQn, STM32_EXT_EXTI19_IRQ_PRIORITY);
#elif defined(STM32F10X_MD_VL) || defined(STM32F10X_HD_VL)
F105 belongs to the connectivity line (together with F107) but does not have ethernet.
Thus the ETH_WKUP_IRQn is not specified in the CMSIS file from ST for the F105.
([r9813]: trunk/os/common/ext/CMSIS/ST/STM32F1xx/stm32f105xc.h)
I believe adding e.g. #if defined(STM32F107xC) or #if !defined(STM32F105xC) would do the trick, but perhaps that would be the wrong way to address the issue.
Note: The ETH_WKUP_IRQn is also referenced at line 353 in hal_ext_lld_isr.c, so a fix might be needed there as well.
Best regards,
Daniel