void listInterrupts() {
#if defined(__MK66FX1M0__)
const char isrName[][24] = {
"dma_ch0","dma_ch1","dma_ch2","dma_ch3","dma_ch4","dma_ch5","dma_ch6","dma_ch7",
"dma_ch8","dma_ch9","dma_ch10","dma_ch11","dma_ch12","dma_ch13","dma_ch14","dma_ch15",
"dma_error","mcm","flash_cmd","flash_error","low_voltage","wakeup","watchdog",
"randnum","i2c0","i2c1","spi0","spi1","i2s0_tx","i2s0_rx","unused 46","uart0_status",
"uart0_error","uart1_status","uart1_error","uart2_status","uart2_error","uart3_status",
"uart3_error","adc0","cmp0","cmp1","ftm0","ftm1","ftm2","cmt","rtc_alarm","rtc_seconds",
"pit0","pit1","pit2","pit3","pdb","usb","usb_charge","unused","dac0","mcg_isr","lptmr",
"porta","portb","portc","portd","porte","software (audio)","spi2","uart4_status","uart4_error",
"unused","unused","cmp2","ftm3","dac1","adc1","i2c2","can0_message","can0_bus_off",
"can0_error","can0_tx_warn","can0_rx_warn","can0_wakeup","sdhc","enet_timer","enet_tx",
"enet_rx","enet_error","lpuart0_status","tsi0","tpm1","tpm2","usbhs_phy","i2c3","cmp3",
"usbhs","can1_message","can1_bus_off","can1_error","can1_tx_warn","can1_rx_warn","can1_wakeup"};
#endif
unsigned adrFaultNMI = (unsigned)_VectorsRam[3];
unsigned adrUnusedInt = (unsigned)_VectorsRam[IRQ_FTFL_COLLISION + 16];//IRQ_FTFL_COLLISION is normally unused
unsigned adr;
Serial.println("Interrupts in use:");
#if 0
Serial.println("NMI (non-maskable):");
for (unsigned i = 1; i < 16; i++) {
adr = (unsigned)_VectorsRam[i];
if (adr != adrUnusedInt) {
Serial.print(i);
Serial.print(": \t");
if (adr == adrFaultNMI) {
Serial.print("Fault NMI");
} else {
Serial.print("\t");
}
Serial.print("\t0x");
Serial.print(adr, HEX);
Serial.println();
}
}
#endif
Serial.println("IRQ:");
for (unsigned i = 0; i < NVIC_NUM_INTERRUPTS; i++) {
adr = (unsigned)_VectorsRam[i + 16];
if (adr != adrUnusedInt) {
Serial.print(i);
Serial.print(": ");
Serial.print("\tPriority:");
Serial.print(NVIC_GET_PRIORITY(i));
Serial.print("\t0x");
Serial.print(adr, HEX);
if (adr < 0x10000000) Serial.print("\t");
Serial.print("\t");
Serial.print(isrName[i]);
if (NVIC_IS_ENABLED(i)) Serial.print("\t is enabled");
Serial.println();
}
}
Serial.println();
}