diff options
| author | Zhao Puhan <[email protected]> | 2025-05-10 18:02:51 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-05-10 18:02:51 +0800 |
| commit | 3fb3be8ad80f595c0426c8021dc3bfeed227232c (patch) | |
| tree | 5796c83d44dfa2c7dcb0e4758a8c24738b131068 | |
| parent | f0609c1b06adb1f3bd0c8054f405614080fb318c (diff) | |
[infineon]fix ifx_pin_irq_enable
| -rw-r--r-- | bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c b/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c index 83c6617ff1..327fcd230b 100644 --- a/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c +++ b/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c @@ -321,7 +321,7 @@ static rt_err_t ifx_pin_irq_enable(struct rt_device *device, rt_base_t pin, irqmap = &pin_irq_map[gpio_port]; #if !defined(COMPONENT_CAT1C) - IRQn_Type irqn = (IRQn_Type)(irqmap->irqno + PORT_GET(irqmap->port)); + IRQn_Type irqn = irqmap->irqno; irq_cb_data[irqn].callback = irq_callback; irq_cb_data[irqn].callback_arg = (rt_uint16_t *)&pin_irq_map[gpio_port].port; cyhal_gpio_register_callback(gpio_pin, &irq_cb_data[irqn]); @@ -357,7 +357,12 @@ static rt_err_t ifx_pin_irq_enable(struct rt_device *device, rt_base_t pin, irqmap = &pin_irq_map[gpio_port]; #if !defined(COMPONENT_CAT1C) - IRQn_Type irqn = (IRQn_Type)(irqmap->irqno + PORT_GET(irqmap->port)); + IRQn_Type irqn = irqmap->irqno; + if (irqn < 0 || irqn >= PIN_IFXPORT_MAX) + { + rt_hw_interrupt_enable(level); + return -RT_EINVAL; + } _cyhal_irq_disable(irqn); #endif rt_hw_interrupt_enable(level); |
