Hi, there is bug in ext_lld_isr.c
Compiling ext_lld_isr.c
../../../../os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c: In function 'ext_lld_exti_irq_enable':
../../../../os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c:227:25: error: missing binary operator before token "!"
../../../../os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c: In function 'ext_lld_exti_irq_disable':
../../../../os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c:244:25: error: missing binary operator before token "!"
Bug in EXT driver STM32F0
Moderator: RoccoMarco
- Giovanni
- Site Admin
- Posts: 14893
- Joined: Wed May 27, 2009 8:48 am
- Has thanked: 1202 times
- Been thanked: 997 times
Re: Bug in EXT driver STM32F0
Hi,
ChibiOS 16.1.3 - Keil 5.17
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
#define HAL_USE_EXT TRUE
#endif
NIL-STM32F051-DISCOVERY
linking...
.\obj\ch.axf: Error: L6218E: Undefined symbol EXTD1 (referred from ext_lld_isr.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_channel_disable (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_channel_enable (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_init (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_start (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_stop (referred from ext.o).
RT-STM32F303-DISCOVERY
compiling ext_lld_isr.c...
..\..\..\..\os\hal\ports\STM32\STM32F3xx\ext_lld_isr.c(346): warning: #61-D: integer operation result is out of range
pr = XTI->PR & XTI->IMR & ((1 << 30) | (1 << 31));
..\..\..\..\os\hal\ports\STM32\STM32F3xx\ext_lld_isr.c(350): warning: #61-D: integer operation result is out of range
if (pr & (1 << 31))
..\..\..\..\os\hal\ports\STM32\STM32F3xx\ext_lld_isr.c(350): warning: #68-D: integer conversion resulted in a change of sign
if (pr & (1 << 31))
Daniel.
ChibiOS 16.1.3 - Keil 5.17
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
#define HAL_USE_EXT TRUE
#endif
NIL-STM32F051-DISCOVERY
linking...
.\obj\ch.axf: Error: L6218E: Undefined symbol EXTD1 (referred from ext_lld_isr.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_channel_disable (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_channel_enable (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_init (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_start (referred from ext.o).
.\obj\ch.axf: Error: L6218E: Undefined symbol ext_lld_stop (referred from ext.o).
RT-STM32F303-DISCOVERY
compiling ext_lld_isr.c...
..\..\..\..\os\hal\ports\STM32\STM32F3xx\ext_lld_isr.c(346): warning: #61-D: integer operation result is out of range
pr = XTI->PR & XTI->IMR & ((1 << 30) | (1 << 31));
..\..\..\..\os\hal\ports\STM32\STM32F3xx\ext_lld_isr.c(350): warning: #61-D: integer operation result is out of range
if (pr & (1 << 31))
..\..\..\..\os\hal\ports\STM32\STM32F3xx\ext_lld_isr.c(350): warning: #68-D: integer conversion resulted in a change of sign
if (pr & (1 << 31))
Daniel.
- Giovanni
- Site Admin
- Posts: 14893
- Joined: Wed May 27, 2009 8:48 am
- Has thanked: 1202 times
- Been thanked: 997 times
Re: Bug in EXT driver STM32F0
Hi,
I replaced (1 << 31) with (1U << 31), please could you verify that it solves the problem?
Giovanni
I replaced (1 << 31) with (1U << 31), please could you verify that it solves the problem?
Giovanni