/** * \brief Initializes the hardware interrupt controller driver. * */ void INTC_init_interrupts(void) { uint32_t int_grp, int_req; INTC_init_evba(); // For all interrupt groups, for (int_grp = 0; int_grp < AVR32_INTC_NUM_INT_GRPS; int_grp++) { // For all interrupt request lines of each group, for (int_req = 0; int_req < _int_handler_table[int_grp].num_irqs; int_req++) { /* Assign _unhandled_interrupt as the default interrupt handler. */ _int_handler_table[int_grp] ._int_line_handler_table[int_req] = &_unhandled_interrupt; } /* Set the interrupt group priority register to its default value. By default, all interrupt groups are linked to the interrupt priority level 0 and to the interrupt vector _int0. */ AVR32_INTC.ipr[int_grp] = IPR_INT0; } }
void INTC_init_interrupts(void) { unsigned int int_grp, int_req; INTC_init_evba(); // For all interrupt groups, for (int_grp = 0; int_grp < AVR32_INTC_NUM_INT_GRPS; int_grp++) { // For all interrupt request lines of each group, for (int_req = 0; int_req < _int_handler_table[int_grp].num_irqs; int_req++) { // Assign _unhandled_interrupt as default interrupt handler. _int_handler_table[int_grp]._int_line_handler_table[int_req] = &_unhandled_interrupt; } // Set the interrupt group priority register to its default value. // By default, all interrupt groups are linked to the interrupt priority // level 0 and to the interrupt vector _int0. AVR32_INTC.ipr[int_grp] = ipr_val[AVR32_INTC_INT0]; } }