mirror of https://github.com/ARMmbed/mbed-os.git
[NANO130] Fix issues in ci-test
parent
9dcd7256cb
commit
369d65fd0d
|
@ -29,7 +29,6 @@
|
||||||
|
|
||||||
struct nu_gpio_irq_var {
|
struct nu_gpio_irq_var {
|
||||||
gpio_irq_t * obj_arr;
|
gpio_irq_t * obj_arr;
|
||||||
//IRQn_Type irq_n;
|
|
||||||
uint32_t gpio_n;
|
uint32_t gpio_n;
|
||||||
void (*vec)(void);
|
void (*vec)(void);
|
||||||
};
|
};
|
||||||
|
@ -125,7 +124,7 @@ int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32
|
||||||
// Add obj to linked list
|
// Add obj to linked list
|
||||||
gpio_irq_t *cur_obj = var->obj_arr;
|
gpio_irq_t *cur_obj = var->obj_arr;
|
||||||
if (cur_obj == NULL) {
|
if (cur_obj == NULL) {
|
||||||
cur_obj = obj;
|
var->obj_arr = obj;
|
||||||
} else {
|
} else {
|
||||||
while (cur_obj->next != NULL)
|
while (cur_obj->next != NULL)
|
||||||
cur_obj = cur_obj->next;
|
cur_obj = cur_obj->next;
|
||||||
|
@ -152,15 +151,17 @@ void gpio_irq_free(gpio_irq_t *obj)
|
||||||
if (pre_obj->pin == obj->pin)
|
if (pre_obj->pin == obj->pin)
|
||||||
var->obj_arr = pre_obj->next;
|
var->obj_arr = pre_obj->next;
|
||||||
else {
|
else {
|
||||||
|
int error_flag = 1;
|
||||||
while (pre_obj->next) {
|
while (pre_obj->next) {
|
||||||
gpio_irq_t *cur_obj = pre_obj->next;
|
gpio_irq_t *cur_obj = pre_obj->next;
|
||||||
if (cur_obj->pin == obj->pin) {
|
if (cur_obj->pin == obj->pin) {
|
||||||
pre_obj->next = cur_obj->next;
|
pre_obj->next = cur_obj->next;
|
||||||
|
error_flag = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
pre_obj = pre_obj->next;
|
pre_obj = pre_obj->next;
|
||||||
}
|
}
|
||||||
if (pre_obj->next == NULL)
|
if (error_flag)
|
||||||
error("cannot find obj in gpio_irq_free()");
|
error("cannot find obj in gpio_irq_free()");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -189,6 +190,7 @@ void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable)
|
||||||
gpio_base->IER &= ~(GPIO_INT_FALLING << pin_index);
|
gpio_base->IER &= ~(GPIO_INT_FALLING << pin_index);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -246,8 +248,6 @@ static void gpio_irq(struct nu_gpio_irq_var *var)
|
||||||
break;
|
break;
|
||||||
obj = obj->next;
|
obj = obj->next;
|
||||||
}
|
}
|
||||||
if (obj == NULL)
|
|
||||||
error("cannot find obj in gpio_irq()");
|
|
||||||
if (ier & (GPIO_INT_RISING << pin_index)) {
|
if (ier & (GPIO_INT_RISING << pin_index)) {
|
||||||
if (GPIO_PIN_ADDR(port_index, pin_index)) {
|
if (GPIO_PIN_ADDR(port_index, pin_index)) {
|
||||||
if (obj && obj->irq_handler) {
|
if (obj && obj->irq_handler) {
|
||||||
|
|
Loading…
Reference in New Issue