Skip to content

Commit 369d65f

Browse files
committed
[NANO130] Fix issues in ci-test
1 parent 9dcd725 commit 369d65f

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

targets/TARGET_NUVOTON/TARGET_NANO100/gpio_irq_api.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
struct nu_gpio_irq_var {
3131
gpio_irq_t * obj_arr;
32-
//IRQn_Type irq_n;
3332
uint32_t gpio_n;
3433
void (*vec)(void);
3534
};
@@ -125,7 +124,7 @@ int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32
125124
// Add obj to linked list
126125
gpio_irq_t *cur_obj = var->obj_arr;
127126
if (cur_obj == NULL) {
128-
cur_obj = obj;
127+
var->obj_arr = obj;
129128
} else {
130129
while (cur_obj->next != NULL)
131130
cur_obj = cur_obj->next;
@@ -152,15 +151,17 @@ void gpio_irq_free(gpio_irq_t *obj)
152151
if (pre_obj->pin == obj->pin)
153152
var->obj_arr = pre_obj->next;
154153
else {
154+
int error_flag = 1;
155155
while (pre_obj->next) {
156156
gpio_irq_t *cur_obj = pre_obj->next;
157157
if (cur_obj->pin == obj->pin) {
158158
pre_obj->next = cur_obj->next;
159+
error_flag = 0;
159160
break;
160161
}
161162
pre_obj = pre_obj->next;
162163
}
163-
if (pre_obj->next == NULL)
164+
if (error_flag)
164165
error("cannot find obj in gpio_irq_free()");
165166
}
166167
}
@@ -189,6 +190,7 @@ void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable)
189190
gpio_base->IER &= ~(GPIO_INT_FALLING << pin_index);
190191
}
191192
break;
193+
192194
default:
193195
break;
194196
}
@@ -246,8 +248,6 @@ static void gpio_irq(struct nu_gpio_irq_var *var)
246248
break;
247249
obj = obj->next;
248250
}
249-
if (obj == NULL)
250-
error("cannot find obj in gpio_irq()");
251251
if (ier & (GPIO_INT_RISING << pin_index)) {
252252
if (GPIO_PIN_ADDR(port_index, pin_index)) {
253253
if (obj && obj->irq_handler) {

0 commit comments

Comments
 (0)