diff --git a/Makefile b/Makefile index fc311fe2..7a4fff26 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ Q := @ MAKEFLAGS += --no-print-directory endif -YAMLFILES := $(shell find . -name 'irq.yaml') +IRQ_DEFN_FILES := $(shell find . -name 'irq.json') STYLECHECKFILES := $(shell find . -name '*.[ch]') all: build @@ -63,7 +63,7 @@ build: lib @./scripts/irq2nvic_h --remove ./$* LIB_DIRS:=$(wildcard $(addprefix lib/,$(TARGETS))) -$(LIB_DIRS): $(YAMLFILES:=.genhdr) +$(LIB_DIRS): $(IRQ_DEFN_FILES:=.genhdr) @printf " BUILD $@\n"; $(Q)$(MAKE) --directory=$@ SRCLIBDIR=$(SRCLIBDIR) @@ -89,7 +89,7 @@ install: lib doc: $(Q)$(MAKE) -C doc html -clean: $(YAMLFILES:=.cleanhdr) $(LIB_DIRS:=.clean) $(EXAMPLE_DIRS:=.clean) doc.clean styleclean +clean: $(IRQ_DEFN_FILES:=.cleanhdr) $(LIB_DIRS:=.clean) $(EXAMPLE_DIRS:=.clean) doc.clean styleclean %.clean: $(Q)if [ -d $* ]; then \ diff --git a/README b/README index 83c0b956..4f33b968 100644 --- a/README +++ b/README @@ -35,19 +35,14 @@ TIP: Include this repository as a GIT submodule in your project. To make sure Prerequisites ------------- -Building requires python, and a python YAML module. (Some code is generated) +Building requires python. (Some code is generated) -For Ubuntu - $ [sudo] apt-get install python-yaml - -For Fedora - $ [sudo] yum install PyYAML +For Ubuntu/Fedora, you already have everything you need. For Windows Download and install: msys - sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/MSYS-1.0.11.exe Python - http://www.python.org/ftp/python/2.7/python-2.7.msi (use installer to get the right registry keys for PyYAML) - PyYAML - http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe arm-none-eabi toolchain - for example this one https://launchpad.net/gcc-arm-embedded Run msys shell and set the path without standard Windows paths, so Windows programs such as 'find' won't interfere: export PATH="/c//Python27:/c/ARMToolchain/bin:/usr/local/bin:/usr/bin:/bin" diff --git a/include/libopencm3/efm32/efm32g/irq.json b/include/libopencm3/efm32/efm32g/irq.json new file mode 100644 index 00000000..59cc38b4 --- /dev/null +++ b/include/libopencm3/efm32/efm32g/irq.json @@ -0,0 +1,38 @@ +{ + "_source": "The names and sequence are taken from d0001_efm32g_reference_manual.pdf table 4.1.", + "irqs": [ + "dma", + "gpio_even", + "timer0", + "usart0_rx", + "usart0_tx", + "acmp01", + "adc0", + "dac0", + "i2c0", + "gpio_odd", + "timer1", + "timer2", + "usart1_rx", + "usart1_tx", + "usart2_rx", + "usart2_tx", + "uart0_rx", + "uart0_tx", + "leuart0", + "leuart1", + "letimer0", + "pcnt0", + "pcnt1", + "pcnt2", + "rtc", + "cmu", + "vcmp", + "lcd", + "msc", + "aes" + ], + "partname_humanreadable": "EFM32 Gecko series", + "partname_doxygen": "EFM32G", + "includeguard": "LIBOPENCM3_EFM32G_NVIC_H" +} diff --git a/include/libopencm3/efm32/efm32g/irq.yaml b/include/libopencm3/efm32/efm32g/irq.yaml deleted file mode 100644 index 770f755f..00000000 --- a/include/libopencm3/efm32/efm32g/irq.yaml +++ /dev/null @@ -1,35 +0,0 @@ -includeguard: LIBOPENCM3_EFM32G_NVIC_H -partname_humanreadable: EFM32 Gecko series -partname_doxygen: EFM32G -# The names and sequence are taken from d0001_efm32g_reference_manual.pdf table 4.1. -irqs: - - dma - - gpio_even - - timer0 - - usart0_rx - - usart0_tx - - acmp01 - - adc0 - - dac0 - - i2c0 - - gpio_odd - - timer1 - - timer2 - - usart1_rx - - usart1_tx - - usart2_rx - - usart2_tx - - uart0_rx - - uart0_tx - - leuart0 - - leuart1 - - letimer0 - - pcnt0 - - pcnt1 - - pcnt2 - - rtc - - cmu - - vcmp - - lcd - - msc - - aes diff --git a/include/libopencm3/efm32/efm32gg/irq.json b/include/libopencm3/efm32/efm32gg/irq.json new file mode 100644 index 00000000..43e7e8ca --- /dev/null +++ b/include/libopencm3/efm32/efm32gg/irq.json @@ -0,0 +1,46 @@ +{ + "_source": "The names and sequence are taken from d0053_efm32gg_refreence_manual.pdf table 4.1.", + "irqs": [ + "dma", + "gpio_even", + "timer0", + "usart0_rx", + "usart0_tx", + "usb", + "acmp01", + "adc0", + "dac0", + "i2c0", + "i2c1", + "gpio_odd", + "timer1", + "timer2", + "timer3", + "usart1_rx", + "usart1_tx", + "lesense", + "usart2_rx", + "usart2_tx", + "uart0_rx", + "uart0_tx", + "uart1_rx", + "uart1_tx", + "leuart0", + "leuart1", + "letimer0", + "pcnt0", + "pcnt1", + "pcnt2", + "rtc", + "burtc", + "cmu", + "vcmp", + "lcd", + "msc", + "aes", + "ebi" + ], + "partname_humanreadable": "EFM32 Giant Gecko series", + "partname_doxygen": "EFM32GG", + "includeguard": "LIBOPENCM3_EFM32GG_NVIC_H" +} diff --git a/include/libopencm3/efm32/efm32gg/irq.yaml b/include/libopencm3/efm32/efm32gg/irq.yaml deleted file mode 100644 index 1cb46018..00000000 --- a/include/libopencm3/efm32/efm32gg/irq.yaml +++ /dev/null @@ -1,43 +0,0 @@ -includeguard: LIBOPENCM3_EFM32GG_NVIC_H -partname_humanreadable: EFM32 Giant Gecko series -partname_doxygen: EFM32GG -# The names and sequence are taken from d0053_efm32gg_refreence_manual.pdf table 4.1. -irqs: - - dma - - gpio_even - - timer0 - - usart0_rx - - usart0_tx - - usb - - acmp01 - - adc0 - - dac0 - - i2c0 - - i2c1 - - gpio_odd - - timer1 - - timer2 - - timer3 - - usart1_rx - - usart1_tx - - lesense - - usart2_rx - - usart2_tx - - uart0_rx - - uart0_tx - - uart1_rx - - uart1_tx - - leuart0 - - leuart1 - - letimer0 - - pcnt0 - - pcnt1 - - pcnt2 - - rtc - - burtc - - cmu - - vcmp - - lcd - - msc - - aes - - ebi diff --git a/include/libopencm3/efm32/efm32lg/irq.json b/include/libopencm3/efm32/efm32lg/irq.json new file mode 100644 index 00000000..beb036dc --- /dev/null +++ b/include/libopencm3/efm32/efm32lg/irq.json @@ -0,0 +1,46 @@ +{ + "_source": "The names and sequence are taken from d0183_efm32lg_reference_manual.pdf table 4.1.", + "irqs": [ + "dma", + "gpio_even", + "timer0", + "usart0_rx", + "usart0_tx", + "usb", + "acmp01", + "adc0", + "dac0", + "i2c0", + "i2c1", + "gpio_odd", + "timer1", + "timer2", + "timer3", + "usart1_rx", + "usart1_tx", + "lesense", + "usart2_rx", + "usart2_tx", + "uart0_rx", + "uart0_tx", + "uart1_rx", + "uart1_tx", + "leuart0", + "leuart1", + "letimer0", + "pcnt0", + "pcnt1", + "pcnt2", + "rtc", + "burtc", + "cmu", + "vcmp", + "lcd", + "msc", + "aes", + "ebi" + ], + "partname_humanreadable": "EFM32 Leopard Gecko series", + "partname_doxygen": "EFM32LG", + "includeguard": "LIBOPENCM3_EFM32LG_NVIC_H" +} diff --git a/include/libopencm3/efm32/efm32lg/irq.yaml b/include/libopencm3/efm32/efm32lg/irq.yaml deleted file mode 100644 index ec38bc15..00000000 --- a/include/libopencm3/efm32/efm32lg/irq.yaml +++ /dev/null @@ -1,43 +0,0 @@ -includeguard: LIBOPENCM3_EFM32LG_NVIC_H -partname_humanreadable: EFM32 Leopard Gecko series -partname_doxygen: EFM32LG -# The names and sequence are taken from d0183_efm32lg_reference_manual.pdf table 4.1. -irqs: - - dma - - gpio_even - - timer0 - - usart0_rx - - usart0_tx - - usb - - acmp01 - - adc0 - - dac0 - - i2c0 - - i2c1 - - gpio_odd - - timer1 - - timer2 - - timer3 - - usart1_rx - - usart1_tx - - lesense - - usart2_rx - - usart2_tx - - uart0_rx - - uart0_tx - - uart1_rx - - uart1_tx - - leuart0 - - leuart1 - - letimer0 - - pcnt0 - - pcnt1 - - pcnt2 - - rtc - - burtc - - cmu - - vcmp - - lcd - - msc - - aes - - ebi diff --git a/include/libopencm3/efm32/efm32tg/irq.json b/include/libopencm3/efm32/efm32tg/irq.json new file mode 100644 index 00000000..95efa85e --- /dev/null +++ b/include/libopencm3/efm32/efm32tg/irq.json @@ -0,0 +1,31 @@ +{ + "_source": "The names and sequence are taken from d0034_efm32tg_reference_manual.pdf table 4.1.", + "irqs": [ + "dma", + "gpio_even", + "timer0", + "usart0_rx", + "usart0_tx", + "acmp01", + "adc0", + "dac0", + "i2c0", + "gpio_odd", + "timer1", + "usart1_rx", + "usart1_tx", + "lesense", + "leuart0", + "letimer0", + "pcnt0", + "rtc", + "cmu", + "vcmp", + "lcd", + "msc", + "aes" + ], + "partname_humanreadable": "EFM32 Tiny Gecko series", + "partname_doxygen": "EFM32TG", + "includeguard": "LIBOPENCM3_EFM32TG_NVIC_H" +} diff --git a/include/libopencm3/efm32/efm32tg/irq.yaml b/include/libopencm3/efm32/efm32tg/irq.yaml deleted file mode 100644 index f4aaba33..00000000 --- a/include/libopencm3/efm32/efm32tg/irq.yaml +++ /dev/null @@ -1,28 +0,0 @@ -includeguard: LIBOPENCM3_EFM32TG_NVIC_H -partname_humanreadable: EFM32 Tiny Gecko series -partname_doxygen: EFM32TG -# The names and sequence are taken from d0034_efm32tg_reference_manual.pdf table 4.1. -irqs: - - dma - - gpio_even - - timer0 - - usart0_rx - - usart0_tx - - acmp01 - - adc0 - - dac0 - - i2c0 - - gpio_odd - - timer1 - - usart1_rx - - usart1_tx - - lesense - - leuart0 - - letimer0 - - pcnt0 - - rtc - - cmu - - vcmp - - lcd - - msc - - aes diff --git a/include/libopencm3/lm3s/irq.json b/include/libopencm3/lm3s/irq.json new file mode 100644 index 00000000..0d8dcfc7 --- /dev/null +++ b/include/libopencm3/lm3s/irq.json @@ -0,0 +1,126 @@ +{ + "_comment": [ + "Although this says LM3S, the interrupt table applies to the", + "LM4F as well Some interrupt vectores marked as reserved in LM3S are", + "used in LM4F, and some vectors in LM3S are marked reserved for LM4F.", + "However, the common vectors are identical, and we can safely use the", + "same interrupt table. Reserved vectors will never be triggered, so", + "having them is perfectly safe." + ], + "irqs": { + "0": "GPIOA", + "1": "GPIOB", + "2": "GPIOC", + "3": "GPIOD", + "4": "GPIOE", + "5": "UART0", + "6": "UART1", + "7": "SSI0", + "8": "I2C0", + "9": "PWM0_FAULT", + "10": "PWM0_0", + "11": "PWM0_1", + "12": "PWM0_2", + "13": "QEI0", + "14": "ADC0SS0", + "15": "ADC0SS1", + "16": "ADC0SS2", + "17": "ADC0SS3", + "18": "WATCHDOG", + "19": "TIMER0A", + "20": "TIMER0B", + "21": "TIMER1A", + "22": "TIMER1B", + "23": "TIMER2A", + "24": "TIMER2B", + "25": "COMP0", + "26": "COMP1", + "27": "COMP2", + "28": "SYSCTL", + "29": "FLASH", + "30": "GPIOF", + "31": "GPIOG", + "32": "GPIOH", + "33": "UART2", + "34": "SSI1", + "35": "TIMER3A", + "36": "TIMER3B", + "37": "I2C1", + "38": "QEI1", + "39": "CAN0", + "40": "CAN1", + "41": "CAN2", + "42": "ETH", + "43": "HIBERNATE", + "44": "USB0", + "45": "PWM0_3", + "46": "UDMA", + "47": "UDMAERR", + "48": "ADC1SS0", + "49": "ADC1SS1", + "50": "ADC1SS2", + "51": "ADC1SS3", + "52": "I2S0", + "53": "EPI0", + "54": "GPIOJ", + "55": "GPIOK", + "56": "GPIOL", + "57": "SSI2", + "58": "SSI3", + "59": "UART3", + "60": "UART4", + "61": "UART5", + "62": "UART6", + "63": "UART7", + "68": "I2C2", + "69": "I2C3", + "70": "TIMER4A", + "71": "TIMER4B", + "92": "TIMER5A", + "93": "TIMER5B", + "94": "WTIMER0A", + "95": "WTIMER0B", + "96": "WTIMER1A", + "97": "WTIMER1B", + "98": "WTIMER2A", + "99": "WTIMER2B", + "100": "WTIMER3A", + "101": "WTIMER3B", + "102": "WTIMER4A", + "103": "WTIMER4B", + "104": "WTIMER5A", + "105": "WTIMER5B", + "106": "SYSEXC", + "107": "PECI0", + "108": "LPC0", + "109": "I2C4", + "110": "I2C5", + "111": "GPIOM", + "112": "GPION", + "114": "FAN0", + "116": "GPIOP0", + "117": "GPIOP1", + "118": "GPIOP2", + "119": "GPIOP3", + "120": "GPIOP4", + "121": "GPIOP5", + "122": "GPIOP6", + "123": "GPIOP7", + "124": "GPIOQ0", + "125": "GPIOQ1", + "126": "GPIOQ2", + "127": "GPIOQ3", + "128": "GPIOQ4", + "129": "GPIOQ5", + "130": "GPIOQ6", + "131": "GPIOQ7", + "134": "PWM1_0", + "135": "PWM1_1", + "136": "PWM1_2", + "137": "PWM1_3", + "138": "PWM1_FAULT" + }, + "partname_humanreadable": "LM3S series", + "partname_doxygen": "LM3S", + "includeguard": "LIBOPENCM3_LM3S_NVIC_H" +} diff --git a/include/libopencm3/lm3s/irq.yaml b/include/libopencm3/lm3s/irq.yaml deleted file mode 100644 index 15abb81d..00000000 --- a/include/libopencm3/lm3s/irq.yaml +++ /dev/null @@ -1,125 +0,0 @@ -# Although this says LM3S, the interrupt table applies to the LM4F as well -# Some interrupt vectores marked as reserved in LM3S are used in LM4F, and some -# vectors in LM3S are marked reserved for LM4F. However, the common vectors are -# identical, and we can safely use the same interrupt table. Reserved vectors -# will never be triggered, so having them is perfectly safe. -includeguard: LIBOPENCM3_LM3S_NVIC_H -partname_humanreadable: LM3S series -partname_doxygen: LM3S -irqs: - 0: GPIOA - 1: GPIOB - 2: GPIOC - 3: GPIOD - 4: GPIOE - 5: UART0 - 6: UART1 - 7: SSI0 - 8: I2C0 - 9: PWM0_FAULT - 10: PWM0_0 - 11: PWM0_1 - 12: PWM0_2 - 13: QEI0 - 14: ADC0SS0 - 15: ADC0SS1 - 16: ADC0SS2 - 17: ADC0SS3 - 18: WATCHDOG - 19: TIMER0A - 20: TIMER0B - 21: TIMER1A - 22: TIMER1B - 23: TIMER2A - 24: TIMER2B - 25: COMP0 - 26: COMP1 - 27: COMP2 - 28: SYSCTL - 29: FLASH - 30: GPIOF - 31: GPIOG - 32: GPIOH - 33: UART2 - 34: SSI1 - 35: TIMER3A - 36: TIMER3B - 37: I2C1 - 38: QEI1 - 39: CAN0 - 40: CAN1 - 41: CAN2 - 42: ETH - 43: HIBERNATE - 44: USB0 - 45: PWM0_3 - 46: UDMA - 47: UDMAERR - 48: ADC1SS0 - 49: ADC1SS1 - 50: ADC1SS2 - 51: ADC1SS3 - 52: I2S0 - 53: EPI0 - 54: GPIOJ - 55: GPIOK - 56: GPIOL - 57: SSI2 - 58: SSI3 - 59: UART3 - 60: UART4 - 61: UART5 - 62: UART6 - 63: UART7 -# undefined: slot 64 - 67 - 68: I2C2 - 69: I2C3 - 70: TIMER4A - 71: TIMER4B -# undefined: slot 72 - 91 - 92: TIMER5A - 93: TIMER5B - 94: WTIMER0A - 95: WTIMER0B - 96: WTIMER1A - 97: WTIMER1B - 98: WTIMER2A - 99: WTIMER2B - 100: WTIMER3A - 101: WTIMER3B - 102: WTIMER4A - 103: WTIMER4B - 104: WTIMER5A - 105: WTIMER5B - 106: SYSEXC - 107: PECI0 - 108: LPC0 - 109: I2C4 - 110: I2C5 - 111: GPIOM - 112: GPION -# undefined: slot 113 - 114: FAN0 -# undefined: slot 115 - 116: GPIOP0 - 117: GPIOP1 - 118: GPIOP2 - 119: GPIOP3 - 120: GPIOP4 - 121: GPIOP5 - 122: GPIOP6 - 123: GPIOP7 - 124: GPIOQ0 - 125: GPIOQ1 - 126: GPIOQ2 - 127: GPIOQ3 - 128: GPIOQ4 - 129: GPIOQ5 - 130: GPIOQ6 - 131: GPIOQ7 -# undefined: slot 132 - 133 - 134: PWM1_0 - 135: PWM1_1 - 136: PWM1_2 - 137: PWM1_3 - 138: PWM1_FAULT diff --git a/include/libopencm3/lpc13xx/irq.json b/include/libopencm3/lpc13xx/irq.json new file mode 100644 index 00000000..d9ac31fd --- /dev/null +++ b/include/libopencm3/lpc13xx/irq.json @@ -0,0 +1,63 @@ +{ + "irqs": { + "0": "pio0_0", + "1": "pio0_1", + "2": "pio0_2", + "3": "pio0_3", + "4": "pio0_4", + "5": "pio0_5", + "6": "pio0_6", + "7": "pio0_7", + "8": "pio0_8", + "9": "pio0_9", + "10": "pio0_10", + "11": "pio0_11", + "12": "pio1_0", + "13": "pio1_1", + "14": "pio1_2", + "15": "pio1_3", + "16": "pio1_4", + "17": "pio1_5", + "18": "pio1_6", + "19": "pio1_7", + "20": "pio1_8", + "21": "pio1_9", + "22": "pio1_10", + "23": "pio1_11", + "24": "pio2_0", + "25": "pio2_1", + "26": "pio2_2", + "27": "pio2_3", + "28": "pio2_4", + "29": "pio2_5", + "30": "pio2_6", + "31": "pio2_7", + "32": "pio2_8", + "33": "pio2_9", + "34": "pio2_10", + "35": "pio2_11", + "36": "pio3_0", + "37": "pio3_1", + "38": "pio3_2", + "39": "pio3_3", + "40": "i2c0", + "41": "ct16b0", + "42": "ct16b1", + "43": "ct32b0", + "44": "ct32b1", + "45": "ssp0", + "46": "uart", + "47": "usb", + "48": "usb_fiq", + "49": "adc", + "50": "wdt", + "51": "bod", + "53": "pio3", + "54": "pio2", + "55": "pio1", + "56": "ssp1" + }, + "partname_humanreadable": "LPC 13xx series", + "partname_doxygen": "LPC13xx", + "includeguard": "LIBOPENCM3_LPC13xx_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/lpc13xx/irq.yaml b/include/libopencm3/lpc13xx/irq.yaml deleted file mode 100644 index 5a372db5..00000000 --- a/include/libopencm3/lpc13xx/irq.yaml +++ /dev/null @@ -1,62 +0,0 @@ -includeguard: LIBOPENCM3_LPC13xx_NVIC_H -partname_humanreadable: LPC 13xx series -partname_doxygen: LPC13xx -irqs: - 0: pio0_0 - 1: pio0_1 - 2: pio0_2 - 3: pio0_3 - 4: pio0_4 - 5: pio0_5 - 6: pio0_6 - 7: pio0_7 - 8: pio0_8 - 9: pio0_9 - 10: pio0_10 - 11: pio0_11 - 12: pio1_0 - 13: pio1_1 - 14: pio1_2 - 15: pio1_3 - 16: pio1_4 - 17: pio1_5 - 18: pio1_6 - 19: pio1_7 - 20: pio1_8 - 21: pio1_9 - 22: pio1_10 - 23: pio1_11 - 24: pio2_0 - 25: pio2_1 - 26: pio2_2 - 27: pio2_3 - 28: pio2_4 - 29: pio2_5 - 30: pio2_6 - 31: pio2_7 - 32: pio2_8 - 33: pio2_9 - 34: pio2_10 - 35: pio2_11 - 36: pio3_0 - 37: pio3_1 - 38: pio3_2 - 39: pio3_3 - 40: i2c0 - 41: ct16b0 - 42: ct16b1 - 43: ct32b0 - 44: ct32b1 - 45: ssp0 - 46: uart - 47: usb - 48: usb_fiq - 49: adc - 50: wdt - 51: bod -# 52: reserved - 53: pio3 - 54: pio2 - 55: pio1 - 56: pio0 - 56: ssp1 diff --git a/include/libopencm3/lpc17xx/irq.json b/include/libopencm3/lpc17xx/irq.json new file mode 100644 index 00000000..94eec072 --- /dev/null +++ b/include/libopencm3/lpc17xx/irq.json @@ -0,0 +1,42 @@ +{ + "irqs": { + "0": "wdt", + "1": "timer0", + "2": "timer1", + "3": "timer2", + "4": "timer3", + "5": "uart0", + "6": "uart1", + "7": "uart2", + "8": "uart3", + "9": "pwm", + "10": "i2c0", + "11": "i2c1", + "12": "i2c2", + "13": "spi", + "14": "ssp0", + "15": "ssp1", + "16": "pll0", + "17": "rtc", + "18": "eint0", + "19": "eint1", + "20": "eint2", + "21": "eint3", + "22": "adc", + "23": "bod", + "24": "usb", + "25": "can", + "26": "gpdma", + "27": "i2s", + "28": "ethernet", + "29": "rit", + "30": "motor_pwm", + "31": "qei", + "32": "pll1", + "33": "usb_act", + "34": "can_act" + }, + "partname_humanreadable": "LPC 17xx series", + "partname_doxygen": "LPC17xx", + "includeguard": "LIBOPENCM3_LPC17xx_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/lpc17xx/irq.yaml b/include/libopencm3/lpc17xx/irq.yaml deleted file mode 100644 index faa140f7..00000000 --- a/include/libopencm3/lpc17xx/irq.yaml +++ /dev/null @@ -1,39 +0,0 @@ -includeguard: LIBOPENCM3_LPC17xx_NVIC_H -partname_humanreadable: LPC 17xx series -partname_doxygen: LPC17xx -irqs: - 0: wdt - 1: timer0 - 2: timer1 - 3: timer2 - 4: timer3 - 5: uart0 - 6: uart1 - 7: uart2 - 8: uart3 - 9: pwm - 10: i2c0 - 11: i2c1 - 12: i2c2 - 13: spi - 14: ssp0 - 15: ssp1 - 16: pll0 - 17: rtc - 18: eint0 - 19: eint1 - 20: eint2 - 21: eint3 - 22: adc - 23: bod - 24: usb - 25: can - 26: gpdma - 27: i2s - 28: ethernet - 29: rit - 30: motor_pwm - 31: qei - 32: pll1 - 33: usb_act - 34: can_act diff --git a/include/libopencm3/lpc43xx/m0/irq.json b/include/libopencm3/lpc43xx/m0/irq.json new file mode 100644 index 00000000..828c1ddc --- /dev/null +++ b/include/libopencm3/lpc43xx/m0/irq.json @@ -0,0 +1,36 @@ +{ + "irqs": { + "0": "rtc", + "1": "m4core", + "2": "dma", + "4": "flasheepromat", + "5": "ethernet", + "6": "sdio", + "7": "lcd", + "8": "usb0", + "9": "usb1", + "10": "sct", + "11": "ritimer_or_wwdt", + "12": "timer0", + "13": "gint1", + "14": "pin_int4", + "15": "timer3", + "16": "mcpwm", + "17": "adc0", + "18": "i2c0_or_irc1", + "19": "sgpio", + "20": "spi_or_dac", + "21": "adc1", + "22": "ssp0_or_ssp1", + "23": "eventrouter", + "24": "usart0", + "25": "uart1", + "26": "usart2_or_c_can1", + "27": "usart3", + "28": "i2s0_or_i2s1", + "29": "c_can0" + }, + "partname_humanreadable": "LPC 43xx series M0 core", + "partname_doxygen": "LPC43xx (M0)", + "includeguard": "LIBOPENCM3_LPC43xx_M0_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/lpc43xx/m0/irq.yaml b/include/libopencm3/lpc43xx/m0/irq.yaml deleted file mode 100644 index 33ce9cb5..00000000 --- a/include/libopencm3/lpc43xx/m0/irq.yaml +++ /dev/null @@ -1,34 +0,0 @@ -includeguard: LIBOPENCM3_LPC43xx_M0_NVIC_H -partname_humanreadable: LPC 43xx series M0 core -partname_doxygen: LPC43xx (M0) -irqs: - 0: rtc - 1: m4core - 2: dma -# reserved: 3 - 4: flasheepromat - 5: ethernet - 6: sdio - 7: lcd - 8: usb0 - 9: usb1 - 10: sct - 11: ritimer_or_wwdt - 12: timer0 - 13: gint1 - 14: pin_int4 - 15: timer3 - 16: mcpwm - 17: adc0 - 18: i2c0_or_irc1 - 19: sgpio - 20: spi_or_dac - 21: adc1 - 22: ssp0_or_ssp1 - 23: eventrouter - 24: usart0 - 25: uart1 - 26: usart2_or_c_can1 - 27: usart3 - 28: i2s0_or_i2s1 - 29: c_can0 \ No newline at end of file diff --git a/include/libopencm3/lpc43xx/m4/irq.json b/include/libopencm3/lpc43xx/m4/irq.json new file mode 100644 index 00000000..376fab11 --- /dev/null +++ b/include/libopencm3/lpc43xx/m4/irq.json @@ -0,0 +1,54 @@ +{ + "irqs": { + "0": "dac", + "1": "m0core", + "2": "dma", + "5": "ethernet", + "6": "sdio", + "7": "lcd", + "8": "usb0", + "9": "usb1", + "10": "sct", + "11": "ritimer", + "12": "timer0", + "13": "timer1", + "14": "timer2", + "15": "timer3", + "16": "mcpwm", + "17": "adc0", + "18": "i2c0", + "19": "i2c1", + "20": "spi", + "21": "adc1", + "22": "ssp0", + "23": "ssp1", + "24": "usart0", + "25": "uart1", + "26": "usart2", + "27": "usart3", + "28": "i2s0", + "29": "i2s1", + "30": "spifi", + "31": "sgpio", + "32": "pin_int0", + "33": "pin_int1", + "34": "pin_int2", + "35": "pin_int3", + "36": "pin_int4", + "37": "pin_int5", + "38": "pin_int6", + "39": "pin_int7", + "40": "gint0", + "41": "gint1", + "42": "eventrouter", + "43": "c_can1", + "46": "atimer", + "47": "rtc", + "49": "wwdt", + "51": "c_can0", + "52": "qei" + }, + "partname_humanreadable": "LPC 43xx series M4 core", + "partname_doxygen": "LPC43xx (M4)", + "includeguard": "LIBOPENCM3_LPC43xx_M4_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/lpc43xx/m4/irq.yaml b/include/libopencm3/lpc43xx/m4/irq.yaml deleted file mode 100644 index 32141733..00000000 --- a/include/libopencm3/lpc43xx/m4/irq.yaml +++ /dev/null @@ -1,55 +0,0 @@ -includeguard: LIBOPENCM3_LPC43xx_M4_NVIC_H -partname_humanreadable: LPC 43xx series M4 core -partname_doxygen: LPC43xx (M4) -irqs: - 0: dac - 1: m0core - 2: dma -# reserved: 3, 4 - 5: ethernet - 6: sdio - 7: lcd - 8: usb0 - 9: usb1 - 10: sct - 11: ritimer - 12: timer0 - 13: timer1 - 14: timer2 - 15: timer3 - 16: mcpwm - 17: adc0 - 18: i2c0 - 19: i2c1 - 20: spi - 21: adc1 - 22: ssp0 - 23: ssp1 - 24: usart0 - 25: uart1 - 26: usart2 - 27: usart3 - 28: i2s0 - 29: i2s1 - 30: spifi - 31: sgpio - 32: pin_int0 - 33: pin_int1 - 34: pin_int2 - 35: pin_int3 - 36: pin_int4 - 37: pin_int5 - 38: pin_int6 - 39: pin_int7 - 40: gint0 - 41: gint1 - 42: eventrouter - 43: c_can1 -# reserved: 44, 45 - 46: atimer - 47: rtc -# reserved: 48 - 49: wwdt -# reserved: 50 - 51: c_can0 - 52: qei diff --git a/include/libopencm3/sam/3n/irq.json b/include/libopencm3/sam/3n/irq.json new file mode 100644 index 00000000..614fdbe6 --- /dev/null +++ b/include/libopencm3/sam/3n/irq.json @@ -0,0 +1,39 @@ +{ + "irqs": [ + "supc", + "rstc", + "rtc", + "rtt", + "wdg", + "pmc", + "eefc0", + "reserved0", + "uart0", + "uart1", + "reserved1", + "pioa", + "piob", + "pioc", + "usart0", + "usart1", + "reserved2", + "reserved3", + "reserved4", + "twi0", + "twi1", + "spi", + "reserved5", + "tc0", + "tc1", + "tc2", + "tc3", + "tc4", + "tc5", + "adc", + "dacc", + "pwm" + ], + "partname_humanreadable": "Atmel SAM3N series", + "partname_doxygen": "SAM3N", + "includeguard": "LIBOPENCM3_SAM3N_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/sam/3n/irq.yaml b/include/libopencm3/sam/3n/irq.yaml deleted file mode 100644 index f4fefa8d..00000000 --- a/include/libopencm3/sam/3n/irq.yaml +++ /dev/null @@ -1,36 +0,0 @@ -includeguard: LIBOPENCM3_SAM3N_NVIC_H -partname_humanreadable: Atmel SAM3N series -partname_doxygen: SAM3N -irqs: - - supc - - rstc - - rtc - - rtt - - wdg - - pmc - - eefc0 - - reserved0 - - uart0 - - uart1 - - reserved1 - - pioa - - piob - - pioc - - usart0 - - usart1 - - reserved2 - - reserved3 - - reserved4 - - twi0 - - twi1 - - spi - - reserved5 - - tc0 - - tc1 - - tc2 - - tc3 - - tc4 - - tc5 - - adc - - dacc - - pwm diff --git a/include/libopencm3/sam/3x/irq.json b/include/libopencm3/sam/3x/irq.json new file mode 100644 index 00000000..6750e489 --- /dev/null +++ b/include/libopencm3/sam/3x/irq.json @@ -0,0 +1,52 @@ +{ + "irqs": [ + "supc", + "rstc", + "rtc", + "rtt", + "wdg", + "pmc", + "eefc0", + "eefc1", + "uart", + "smc_sdramc", + "sdramc", + "pioa", + "piob", + "pioc", + "piod", + "pioe", + "piof", + "usart0", + "usart1", + "usart2", + "usart3", + "hsmci", + "twi0", + "twi1", + "spi0", + "spi1", + "ssc", + "tc0", + "tc1", + "tc2", + "tc3", + "tc4", + "tc5", + "tc6", + "tc7", + "tc8", + "pwm", + "adc", + "dacc", + "dmac", + "uotghs", + "trng", + "emac", + "can0", + "can1" + ], + "partname_humanreadable": "Atmel SAM3X series", + "partname_doxygen": "SAM3X", + "includeguard": "LIBOPENCM3_SAM3X_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/sam/3x/irq.yaml b/include/libopencm3/sam/3x/irq.yaml deleted file mode 100644 index 8d163066..00000000 --- a/include/libopencm3/sam/3x/irq.yaml +++ /dev/null @@ -1,49 +0,0 @@ -includeguard: LIBOPENCM3_SAM3X_NVIC_H -partname_humanreadable: Atmel SAM3X series -partname_doxygen: SAM3X -irqs: - - supc - - rstc - - rtc - - rtt - - wdg - - pmc - - eefc0 - - eefc1 - - uart - - smc_sdramc - - sdramc - - pioa - - piob - - pioc - - piod - - pioe - - piof - - usart0 - - usart1 - - usart2 - - usart3 - - hsmci - - twi0 - - twi1 - - spi0 - - spi1 - - ssc - - tc0 - - tc1 - - tc2 - - tc3 - - tc4 - - tc5 - - tc6 - - tc7 - - tc8 - - pwm - - adc - - dacc - - dmac - - uotghs - - trng - - emac - - can0 - - can1 diff --git a/include/libopencm3/stm32/f0/irq.json b/include/libopencm3/stm32/f0/irq.json new file mode 100644 index 00000000..e6355453 --- /dev/null +++ b/include/libopencm3/stm32/f0/irq.json @@ -0,0 +1,39 @@ +{ + "irqs": [ + "wwdg", + "pvd", + "rtc", + "flash", + "rcc", + "exti0_1", + "exti2_3", + "exti4_15", + "tsc", + "dma1_channel1", + "dma1_channel2_3", + "dma1_channel4_5", + "adc_comp", + "tim1_brk_up_trg_com", + "tim1_cc", + "tim2", + "tim3", + "tim6_dac", + "reserved0", + "tim14", + "tim15", + "tim16", + "tim17", + "i2c1", + "i2c2", + "spi1", + "spi2", + "usart1", + "usart2", + "reserved1", + "cec", + "reserved2" + ], + "partname_humanreadable": "STM32 F0 series", + "partname_doxygen": "STM32F0", + "includeguard": "LIBOPENCM3_STM32_F0_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/stm32/f0/irq.yaml b/include/libopencm3/stm32/f0/irq.yaml deleted file mode 100644 index 90013b7c..00000000 --- a/include/libopencm3/stm32/f0/irq.yaml +++ /dev/null @@ -1,36 +0,0 @@ -includeguard: LIBOPENCM3_STM32_F0_NVIC_H -partname_humanreadable: STM32 F0 series -partname_doxygen: STM32F0 -irqs: - - wwdg - - pvd - - rtc - - flash - - rcc - - exti0_1 - - exti2_3 - - exti4_15 - - tsc - - dma1_channel1 - - dma1_channel2_3 - - dma1_channel4_5 - - adc_comp - - tim1_brk_up_trg_com - - tim1_cc - - tim2 - - tim3 - - tim6_dac - - reserved0 - - tim14 - - tim15 - - tim16 - - tim17 - - i2c1 - - i2c2 - - spi1 - - spi2 - - usart1 - - usart2 - - reserved1 - - cec - - reserved2 diff --git a/include/libopencm3/stm32/f1/irq.json b/include/libopencm3/stm32/f1/irq.json new file mode 100644 index 00000000..20bf00ca --- /dev/null +++ b/include/libopencm3/stm32/f1/irq.json @@ -0,0 +1,75 @@ +{ + "irqs": [ + "wwdg", + "pvd", + "tamper", + "rtc", + "flash", + "rcc", + "exti0", + "exti1", + "exti2", + "exti3", + "exti4", + "dma1_channel1", + "dma1_channel2", + "dma1_channel3", + "dma1_channel4", + "dma1_channel5", + "dma1_channel6", + "dma1_channel7", + "adc1_2", + "usb_hp_can_tx", + "usb_lp_can_rx0", + "can_rx1", + "can_sce", + "exti9_5", + "tim1_brk", + "tim1_up", + "tim1_trg_com", + "tim1_cc", + "tim2", + "tim3", + "tim4", + "i2c1_ev", + "i2c1_er", + "i2c2_ev", + "i2c2_er", + "spi1", + "spi2", + "usart1", + "usart2", + "usart3", + "exti15_10", + "rtc_alarm", + "usb_wakeup", + "tim8_brk", + "tim8_up", + "tim8_trg_com", + "tim8_cc", + "adc3", + "fsmc", + "sdio", + "tim5", + "spi3", + "uart4", + "uart5", + "tim6", + "tim7", + "dma2_channel1", + "dma2_channel2", + "dma2_channel3", + "dma2_channel4_5", + "dma2_channel5", + "eth", + "eth_wkup", + "can2_tx", + "can2_rx0", + "can2_rx1", + "can2_sce", + "otg_fs" + ], + "partname_humanreadable": "STM32 F1 series", + "partname_doxygen": "STM32F1", + "includeguard": "LIBOPENCM3_STM32_F1_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/stm32/f1/irq.yaml b/include/libopencm3/stm32/f1/irq.yaml deleted file mode 100644 index 14cbcc03..00000000 --- a/include/libopencm3/stm32/f1/irq.yaml +++ /dev/null @@ -1,72 +0,0 @@ -includeguard: LIBOPENCM3_STM32_F1_NVIC_H -partname_humanreadable: STM32 F1 series -partname_doxygen: STM32F1 -irqs: - - wwdg - - pvd - - tamper - - rtc - - flash - - rcc - - exti0 - - exti1 - - exti2 - - exti3 - - exti4 - - dma1_channel1 - - dma1_channel2 - - dma1_channel3 - - dma1_channel4 - - dma1_channel5 - - dma1_channel6 - - dma1_channel7 - - adc1_2 - - usb_hp_can_tx - - usb_lp_can_rx0 - - can_rx1 - - can_sce - - exti9_5 - - tim1_brk - - tim1_up - - tim1_trg_com - - tim1_cc - - tim2 - - tim3 - - tim4 - - i2c1_ev - - i2c1_er - - i2c2_ev - - i2c2_er - - spi1 - - spi2 - - usart1 - - usart2 - - usart3 - - exti15_10 - - rtc_alarm - - usb_wakeup - - tim8_brk - - tim8_up - - tim8_trg_com - - tim8_cc - - adc3 - - fsmc - - sdio - - tim5 - - spi3 - - uart4 - - uart5 - - tim6 - - tim7 - - dma2_channel1 - - dma2_channel2 - - dma2_channel3 - - dma2_channel4_5 - - dma2_channel5 - - eth - - eth_wkup - - can2_tx - - can2_rx0 - - can2_rx1 - - can2_sce - - otg_fs diff --git a/include/libopencm3/stm32/f2/irq.json b/include/libopencm3/stm32/f2/irq.json new file mode 100644 index 00000000..ec596748 --- /dev/null +++ b/include/libopencm3/stm32/f2/irq.json @@ -0,0 +1,88 @@ +{ + "irqs": [ + "nvic_wwdg", + "pvd", + "tamp_stamp", + "rtc_wkup", + "flash", + "rcc", + "exti0", + "exti1", + "exti2", + "exti3", + "exti4", + "dma1_stream0", + "dma1_stream1", + "dma1_stream2", + "dma1_stream3", + "dma1_stream4", + "dma1_stream5", + "dma1_stream6", + "adc", + "can1_tx", + "can1_rx0", + "can1_rx1", + "can1_sce", + "exti9_5", + "tim1_brk_tim9", + "tim1_up_tim10", + "tim1_trg_com_tim11", + "tim1_cc", + "tim2", + "tim3", + "tim4", + "i2c1_ev", + "i2c1_er", + "i2c2_ev", + "i2c2_er", + "spi1", + "spi2", + "usart1", + "usart2", + "usart3", + "exti15_10", + "rtc_alarm", + "usb_fs_wkup", + "tim8_brk_tim12", + "tim8_up_tim13", + "tim8_trg_com_tim14", + "tim8_cc", + "dma1_stream7", + "fsmc", + "sdio", + "tim5", + "spi3", + "uart4", + "uart5", + "tim6_dac", + "tim7", + "dma2_stream0", + "dma2_stream1", + "dma2_stream2", + "dma2_stream3", + "dma2_stream4", + "eth", + "eth_wkup", + "can2_tx", + "can2_rx0", + "can2_rx1", + "can2_sce", + "otg_fs", + "dma2_stream5", + "dma2_stream6", + "dma2_stream7", + "usart6", + "i2c3_ev", + "i2c3_er", + "otg_hs_ep1_out", + "otg_hs_ep1_in", + "otg_hs_wkup", + "otg_hs", + "dcmi", + "cryp", + "hash_rng" + ], + "partname_humanreadable": "STM32 F2 series", + "partname_doxygen": "STM32F2", + "includeguard": "LIBOPENCM3_STM32_F2_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/stm32/f2/irq.yaml b/include/libopencm3/stm32/f2/irq.yaml deleted file mode 100644 index c3600b36..00000000 --- a/include/libopencm3/stm32/f2/irq.yaml +++ /dev/null @@ -1,85 +0,0 @@ -includeguard: LIBOPENCM3_STM32_F2_NVIC_H -partname_humanreadable: STM32 F2 series -partname_doxygen: STM32F2 -irqs: - - nvic_wwdg - - pvd - - tamp_stamp - - rtc_wkup - - flash - - rcc - - exti0 - - exti1 - - exti2 - - exti3 - - exti4 - - dma1_stream0 - - dma1_stream1 - - dma1_stream2 - - dma1_stream3 - - dma1_stream4 - - dma1_stream5 - - dma1_stream6 - - adc - - can1_tx - - can1_rx0 - - can1_rx1 - - can1_sce - - exti9_5 - - tim1_brk_tim9 - - tim1_up_tim10 - - tim1_trg_com_tim11 - - tim1_cc - - tim2 - - tim3 - - tim4 - - i2c1_ev - - i2c1_er - - i2c2_ev - - i2c2_er - - spi1 - - spi2 - - usart1 - - usart2 - - usart3 - - exti15_10 - - rtc_alarm - - usb_fs_wkup - - tim8_brk_tim12 - - tim8_up_tim13 - - tim8_trg_com_tim14 - - tim8_cc - - dma1_stream7 - - fsmc - - sdio - - tim5 - - spi3 - - uart4 - - uart5 - - tim6_dac - - tim7 - - dma2_stream0 - - dma2_stream1 - - dma2_stream2 - - dma2_stream3 - - dma2_stream4 - - eth - - eth_wkup - - can2_tx - - can2_rx0 - - can2_rx1 - - can2_sce - - otg_fs - - dma2_stream5 - - dma2_stream6 - - dma2_stream7 - - usart6 - - i2c3_ev - - i2c3_er - - otg_hs_ep1_out - - otg_hs_ep1_in - - otg_hs_wkup - - otg_hs - - dcmi - - cryp - - hash_rng diff --git a/include/libopencm3/stm32/f3/irq.json b/include/libopencm3/stm32/f3/irq.json new file mode 100644 index 00000000..6c5afbde --- /dev/null +++ b/include/libopencm3/stm32/f3/irq.json @@ -0,0 +1,88 @@ +{ + "irqs": [ + "nvic_wwdg", + "pvd", + "tamp_stamp", + "rtc_wkup", + "flash", + "rcc", + "exti0", + "exti1", + "exti2_tsc", + "exti3", + "exti4", + "dma1_ch1", + "dma1_ch2", + "dma1_ch3", + "dma1_ch4", + "dma1_ch5", + "dma1_ch6", + "dma1_ch7", + "adc1_2", + "usb_hp_can1_tx", + "usb_lp_can1_rx0", + "can1_rx1", + "can1_sce", + "exti9_5", + "tim1_brk_tim15", + "tim1_up_tim16", + "tim1_trg_com_tim17", + "tim1_cc", + "tim2", + "tim3", + "tim4", + "i2c1_ev_exti23", + "i2c1_er", + "i2c2_ev_exti24", + "i2c2_er", + "spi1", + "spi2", + "usart1_exti25", + "usart2_exti26", + "usart3_exti28", + "exti15_10", + "rtc_alarm", + "usb_wkup_a", + "tim8_brk", + "tim8_up", + "tim8_trg_com", + "tim8_cc", + "adc3", + "reserved_1", + "reserved_2", + "reserved_3", + "spi3", + "uart4_exti34", + "uart5_exti35", + "tim6_dac", + "tim7", + "dma2_ch1", + "dma2_ch2", + "dma2_ch3", + "dma2_ch4", + "dma2_ch5", + "eth", + "reserved_4", + "reserved_5", + "comp123", + "comp456", + "comp7", + "reserved_6", + "reserved_7", + "reserved_8", + "reserved_9", + "reserved_10", + "reserved_11", + "reserved_12", + "usb_hp", + "usb_lp", + "usb_wkup", + "reserved_13", + "reserved_14", + "reserved_15", + "reserved_16" + ], + "partname_humanreadable": "STM32 F3 series", + "partname_doxygen": "STM32F3", + "includeguard": "LIBOPENCM3_STM32_F3_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/stm32/f3/irq.yaml b/include/libopencm3/stm32/f3/irq.yaml deleted file mode 100644 index b79571d8..00000000 --- a/include/libopencm3/stm32/f3/irq.yaml +++ /dev/null @@ -1,85 +0,0 @@ -includeguard: LIBOPENCM3_STM32_F3_NVIC_H -partname_humanreadable: STM32 F3 series -partname_doxygen: STM32F3 -irqs: - - nvic_wwdg - - pvd - - tamp_stamp - - rtc_wkup - - flash - - rcc - - exti0 - - exti1 - - exti2_tsc - - exti3 - - exti4 - - dma1_ch1 - - dma1_ch2 - - dma1_ch3 - - dma1_ch4 - - dma1_ch5 - - dma1_ch6 - - dma1_ch7 - - adc1_2 - - usb_hp_can1_tx - - usb_lp_can1_rx0 - - can1_rx1 - - can1_sce - - exti9_5 - - tim1_brk_tim15 - - tim1_up_tim16 - - tim1_trg_com_tim17 - - tim1_cc - - tim2 - - tim3 - - tim4 - - i2c1_ev_exti23 - - i2c1_er - - i2c2_ev_exti24 - - i2c2_er - - spi1 - - spi2 - - usart1_exti25 - - usart2_exti26 - - usart3_exti28 - - exti15_10 - - rtc_alarm - - usb_wkup_a - - tim8_brk - - tim8_up - - tim8_trg_com - - tim8_cc - - adc3 - - reserved_1 - - reserved_2 - - reserved_3 - - spi3 - - uart4_exti34 - - uart5_exti35 - - tim6_dac - - tim7 - - dma2_ch1 - - dma2_ch2 - - dma2_ch3 - - dma2_ch4 - - dma2_ch5 - - eth - - reserved_4 - - reserved_5 - - comp123 - - comp456 - - comp7 - - reserved_6 - - reserved_7 - - reserved_8 - - reserved_9 - - reserved_10 - - reserved_11 - - reserved_12 - - usb_hp - - usb_lp - - usb_wkup - - reserved_13 - - reserved_14 - - reserved_15 - - reserved_16 diff --git a/include/libopencm3/stm32/f4/irq.json b/include/libopencm3/stm32/f4/irq.json new file mode 100644 index 00000000..33d84bdd --- /dev/null +++ b/include/libopencm3/stm32/f4/irq.json @@ -0,0 +1,88 @@ +{ + "irqs": [ + "nvic_wwdg", + "pvd", + "tamp_stamp", + "rtc_wkup", + "flash", + "rcc", + "exti0", + "exti1", + "exti2", + "exti3", + "exti4", + "dma1_stream0", + "dma1_stream1", + "dma1_stream2", + "dma1_stream3", + "dma1_stream4", + "dma1_stream5", + "dma1_stream6", + "adc", + "can1_tx", + "can1_rx0", + "can1_rx1", + "can1_sce", + "exti9_5", + "tim1_brk_tim9", + "tim1_up_tim10", + "tim1_trg_com_tim11", + "tim1_cc", + "tim2", + "tim3", + "tim4", + "i2c1_ev", + "i2c1_er", + "i2c2_ev", + "i2c2_er", + "spi1", + "spi2", + "usart1", + "usart2", + "usart3", + "exti15_10", + "rtc_alarm", + "usb_fs_wkup", + "tim8_brk_tim12", + "tim8_up_tim13", + "tim8_trg_com_tim14", + "tim8_cc", + "dma1_stream7", + "fsmc", + "sdio", + "tim5", + "spi3", + "uart4", + "uart5", + "tim6_dac", + "tim7", + "dma2_stream0", + "dma2_stream1", + "dma2_stream2", + "dma2_stream3", + "dma2_stream4", + "eth", + "eth_wkup", + "can2_tx", + "can2_rx0", + "can2_rx1", + "can2_sce", + "otg_fs", + "dma2_stream5", + "dma2_stream6", + "dma2_stream7", + "usart6", + "i2c3_ev", + "i2c3_er", + "otg_hs_ep1_out", + "otg_hs_ep1_in", + "otg_hs_wkup", + "otg_hs", + "dcmi", + "cryp", + "hash_rng" + ], + "partname_humanreadable": "STM32 F4 series", + "partname_doxygen": "STM32F4", + "includeguard": "LIBOPENCM3_STM32_F4_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/stm32/f4/irq.yaml b/include/libopencm3/stm32/f4/irq.yaml deleted file mode 100644 index 2d4bae9e..00000000 --- a/include/libopencm3/stm32/f4/irq.yaml +++ /dev/null @@ -1,85 +0,0 @@ -includeguard: LIBOPENCM3_STM32_F4_NVIC_H -partname_humanreadable: STM32 F4 series -partname_doxygen: STM32F4 -irqs: - - nvic_wwdg - - pvd - - tamp_stamp - - rtc_wkup - - flash - - rcc - - exti0 - - exti1 - - exti2 - - exti3 - - exti4 - - dma1_stream0 - - dma1_stream1 - - dma1_stream2 - - dma1_stream3 - - dma1_stream4 - - dma1_stream5 - - dma1_stream6 - - adc - - can1_tx - - can1_rx0 - - can1_rx1 - - can1_sce - - exti9_5 - - tim1_brk_tim9 - - tim1_up_tim10 - - tim1_trg_com_tim11 - - tim1_cc - - tim2 - - tim3 - - tim4 - - i2c1_ev - - i2c1_er - - i2c2_ev - - i2c2_er - - spi1 - - spi2 - - usart1 - - usart2 - - usart3 - - exti15_10 - - rtc_alarm - - usb_fs_wkup - - tim8_brk_tim12 - - tim8_up_tim13 - - tim8_trg_com_tim14 - - tim8_cc - - dma1_stream7 - - fsmc - - sdio - - tim5 - - spi3 - - uart4 - - uart5 - - tim6_dac - - tim7 - - dma2_stream0 - - dma2_stream1 - - dma2_stream2 - - dma2_stream3 - - dma2_stream4 - - eth - - eth_wkup - - can2_tx - - can2_rx0 - - can2_rx1 - - can2_sce - - otg_fs - - dma2_stream5 - - dma2_stream6 - - dma2_stream7 - - usart6 - - i2c3_ev - - i2c3_er - - otg_hs_ep1_out - - otg_hs_ep1_in - - otg_hs_wkup - - otg_hs - - dcmi - - cryp - - hash_rng diff --git a/include/libopencm3/stm32/l1/irq.json b/include/libopencm3/stm32/l1/irq.json new file mode 100644 index 00000000..abea8db8 --- /dev/null +++ b/include/libopencm3/stm32/l1/irq.json @@ -0,0 +1,64 @@ +{ + "irqs": [ + "wwdg", + "pvd", + "tamper_stamp", + "rtc_wkup", + "flash", + "rcc", + "exti0", + "exti1", + "exti2", + "exti3", + "exti4", + "dma1_channel1", + "dma1_channel2", + "dma1_channel3", + "dma1_channel4", + "dma1_channel5", + "dma1_channel6", + "dma1_channel7", + "adc1", + "usb_hp", + "usb_lp", + "dac", + "comp", + "exti9_5", + "lcd", + "tim9", + "tim10", + "tim11", + "tim2", + "tim3", + "tim4", + "i2c1_ev", + "i2c1_er", + "i2c2_ev", + "i2c2_er", + "spi1", + "spi2", + "usart1", + "usart2", + "usart3", + "exti15_10", + "rtc_alarm", + "usb_fs_wakeup", + "tim6", + "tim7", + "sdio", + "tim5", + "spi3", + "uart4", + "uart5", + "dma2_ch1", + "dma2_ch2", + "dma2_ch3", + "dma2_ch4", + "dma2_ch5", + "aes", + "comp_acq" + ], + "partname_humanreadable": "STM32 L1 series", + "partname_doxygen": "STM32L1", + "includeguard": "LIBOPENCM3_STM32_L1_NVIC_H" +} \ No newline at end of file diff --git a/include/libopencm3/stm32/l1/irq.yaml b/include/libopencm3/stm32/l1/irq.yaml deleted file mode 100644 index a10e96cd..00000000 --- a/include/libopencm3/stm32/l1/irq.yaml +++ /dev/null @@ -1,62 +0,0 @@ -includeguard: LIBOPENCM3_STM32_L1_NVIC_H -partname_humanreadable: STM32 L1 series -partname_doxygen: STM32L1 -irqs: - - wwdg - - pvd - - tamper_stamp - - rtc_wkup - - flash - - rcc - - exti0 - - exti1 - - exti2 - - exti3 - - exti4 - - dma1_channel1 - - dma1_channel2 - - dma1_channel3 - - dma1_channel4 - - dma1_channel5 - - dma1_channel6 - - dma1_channel7 - - adc1 - - usb_hp - - usb_lp - - dac - - comp - - exti9_5 - - lcd - - tim9 - - tim10 - - tim11 - - tim2 - - tim3 - - tim4 - - i2c1_ev - - i2c1_er - - i2c2_ev - - i2c2_er - - spi1 - - spi2 - - usart1 - - usart2 - - usart3 - - exti15_10 - - rtc_alarm - - usb_fs_wakeup - - tim6 - - tim7 - # below here is medium+/high density - - sdio - - tim5 - - spi3 - - uart4 - - uart5 - - dma2_ch1 - - dma2_ch2 - - dma2_ch3 - - dma2_ch4 - - dma2_ch5 - - aes - - comp_acq \ No newline at end of file diff --git a/scripts/irq2nvic_h b/scripts/irq2nvic_h index 7f57d43e..1fb48bdf 100755 --- a/scripts/irq2nvic_h +++ b/scripts/irq2nvic_h @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this library. If not, see . -"""Generate an nvic.h header from a small YAML file describing the interrupt +"""Generate an nvic.h header from a small JSON file describing the interrupt numbers. Code generation is chosen here because the resulting C code needs to be very @@ -29,7 +29,7 @@ method to achive the same thing with C preprocessor is known to the author. import sys import os import os.path -import yaml +import json template_nvic_h = '''\ /* This file is part of the libopencm3 project. @@ -110,7 +110,7 @@ template_cmsis_h = '''\ ''' def convert(infile, outfile_nvic, outfile_vectornvic, outfile_cmsis): - data = yaml.load(infile) + data = json.load(infile) irq2name = list(enumerate(data['irqs']) if isinstance(data['irqs'], list) else data['irqs'].items()) irqnames = [v for (k,v) in irq2name] @@ -118,9 +118,9 @@ def convert(infile, outfile_nvic, outfile_vectornvic, outfile_cmsis): if isinstance(data['irqs'], list): data['irqcount'] = len(irq2name) else: - data['irqcount'] = max(data['irqs'].keys()) + 1 + data['irqcount'] = max([int(x) for x in data['irqs'].keys()]) + 1 - data['irqdefinitions'] = "\n".join('#define NVIC_%s_IRQ %d'%(v.upper(),k) for (k,v) in irq2name) + data['irqdefinitions'] = "\n".join('#define NVIC_%s_IRQ %d'%(v.upper(),int(k)) for (k,v) in irq2name) data['isrprototypes'] = "\n".join('void WEAK %s_isr(void);'%name.lower() for name in irqnames) data['isrpragmas'] = "\n".join('#pragma weak %s_isr = blocking_handler'%name.lower() for name in irqnames) data['vectortableinitialization'] = ', \\\n '.join('[NVIC_%s_IRQ] = %s_isr'%(name.upper(), name.lower()) for name in irqnames) @@ -148,11 +148,11 @@ def main(): else: remove = False infile = sys.argv[1] - if not infile.startswith('./include/libopencm3/') or not infile.endswith('/irq.yaml'): - raise ValueError("Arguent must match ./include/libopencm3/**/irq.yaml") - nvic_h = infile.replace('irq.yaml', 'nvic.h') - vector_nvic_c = infile.replace('./include/libopencm3/', './lib/').replace('irq.yaml', 'vector_nvic.c') - cmsis = infile.replace('irq.yaml', 'irqhandlers.h').replace('/libopencm3/', '/libopencmsis/') + if not infile.startswith('./include/libopencm3/') or not infile.endswith('/irq.json'): + raise ValueError("Arguent must match ./include/libopencm3/**/irq.json") + nvic_h = infile.replace('irq.json', 'nvic.h') + vector_nvic_c = infile.replace('./include/libopencm3/', './lib/').replace('irq.json', 'vector_nvic.c') + cmsis = infile.replace('irq.json', 'irqhandlers.h').replace('/libopencm3/', '/libopencmsis/') if remove: if os.path.exists(nvic_h):