diff options
Diffstat (limited to 'src/atsamd/usbserial.c')
-rw-r--r-- | src/atsamd/usbserial.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/src/atsamd/usbserial.c b/src/atsamd/usbserial.c index 6920f4d7..273c3dbd 100644 --- a/src/atsamd/usbserial.c +++ b/src/atsamd/usbserial.c @@ -6,6 +6,7 @@ #include <string.h> // memcpy #include "autoconf.h" // CONFIG_FLASH_START +#include "board/armcm_boot.h" // armcm_enable_irq #include "board/io.h" // readl #include "board/irq.h" // irq_disable #include "board/usb_cdc.h" // usb_notify_ep0 @@ -190,7 +191,7 @@ usb_request_bootloader(void) * Setup and interrupts ****************************************************************/ -void __visible +void USB_Handler(void) { uint8_t s = USB->DEVICE.INTFLAG.reg; @@ -225,12 +226,6 @@ USB_Handler(void) } } -// Aliases for irq handeler on SAMD51 -void USB_0_Handler(void) __visible __attribute__((alias("USB_Handler"))); -void USB_1_Handler(void) __visible __attribute__((alias("USB_Handler"))); -void USB_2_Handler(void) __visible __attribute__((alias("USB_Handler"))); -void USB_3_Handler(void) __visible __attribute__((alias("USB_Handler"))); - DECL_CONSTANT_STR("RESERVE_PINS_USB", "PA24,PA25"); void @@ -256,17 +251,12 @@ usbserial_init(void) // enable irqs USB->DEVICE.INTENSET.reg = USB_DEVICE_INTENSET_EORST; #if CONFIG_MACH_SAMD21 - NVIC_SetPriority(USB_IRQn, 1); - NVIC_EnableIRQ(USB_IRQn); + armcm_enable_irq(USB_Handler, USB_IRQn, 1); #elif CONFIG_MACH_SAMD51 - NVIC_SetPriority(USB_0_IRQn, 1); - NVIC_SetPriority(USB_1_IRQn, 1); - NVIC_SetPriority(USB_2_IRQn, 1); - NVIC_SetPriority(USB_3_IRQn, 1); - NVIC_EnableIRQ(USB_0_IRQn); - NVIC_EnableIRQ(USB_1_IRQn); - NVIC_EnableIRQ(USB_2_IRQn); - NVIC_EnableIRQ(USB_3_IRQn); + armcm_enable_irq(USB_Handler, USB_0_IRQn, 1); + armcm_enable_irq(USB_Handler, USB_1_IRQn, 1); + armcm_enable_irq(USB_Handler, USB_2_IRQn, 1); + armcm_enable_irq(USB_Handler, USB_3_IRQn, 1); #endif } DECL_INIT(usbserial_init); |