diff --git a/components/drivers/pic/pic.c b/components/drivers/pic/pic.c index 75f629f974..5cd2ece005 100644 --- a/components/drivers/pic/pic.c +++ b/components/drivers/pic/pic.c @@ -503,6 +503,8 @@ rt_err_t rt_pic_do_traps(void) rt_err_t err = -RT_ERROR; struct irq_traps *traps; + rt_interrupt_enter(); + rt_list_for_each_entry(traps, &_traps_nodes, list) { if (traps->handler(traps->data)) @@ -513,6 +515,8 @@ rt_err_t rt_pic_do_traps(void) } } + rt_interrupt_leave(); + return err; }