diff options
author | iperry <iperry@749a229e-a60e-11de-b98f-4500b42dc123> | 2010-03-11 05:17:46 +0000 |
---|---|---|
committer | iperry <iperry@749a229e-a60e-11de-b98f-4500b42dc123> | 2010-03-11 05:17:46 +0000 |
commit | 64444756ecd2d9127529ae19a17cfbfa58f1cc69 (patch) | |
tree | f74bab47aa7dfc2c1609476087f479e3ae1ef3a8 | |
parent | 966e4ac594494f02a62d34bb9446ce1ff07dc54b (diff) | |
download | librambutan-64444756ecd2d9127529ae19a17cfbfa58f1cc69.tar.gz librambutan-64444756ecd2d9127529ae19a17cfbfa58f1cc69.zip |
turn usb interrupts on after failed assert so bootloader still works
git-svn-id: https://leaflabs.googlecode.com/svn/trunk/library@147 749a229e-a60e-11de-b98f-4500b42dc123
-rw-r--r-- | src/lib/nvic.h | 5 | ||||
-rw-r--r-- | src/lib/util.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/nvic.h b/src/lib/nvic.h index a2d5c24..5908e9c 100644 --- a/src/lib/nvic.h +++ b/src/lib/nvic.h @@ -26,6 +26,8 @@ #ifndef _NVIC_H_ #define _NVIC_H_ +#define NVIC_INT_USBHP 19 +#define NVIC_INT_USBLP 20 #define NVIC_EXTI1_OFFSET (NVIC_ISER0 + 0x07) #define NVIC_EXTI9_5_OFFSET (NVIC_ISER0 + 0x17) @@ -47,11 +49,14 @@ #define NVIC_VectTab_RAM ((u32)0x20000000) #define NVIC_VectTab_FLASH ((u32)0x08000000) +#define NVIC_NR_INTERRUPTS 60 + #ifdef __cplusplus extern "C"{ #endif void nvic_disable_interrupts(void); +void nvic_enable_interrupt(uint32); #ifdef __cplusplus } diff --git a/src/lib/util.c b/src/lib/util.c index c75031f..d323611 100644 --- a/src/lib/util.c +++ b/src/lib/util.c @@ -75,6 +75,10 @@ void _fail(const char* file, int line, const char* exp) { /* Turn on the error LED */ gpio_set_mode(ERROR_LED_PORT, ERROR_LED_PIN, GPIO_MODE_OUTPUT_PP); + /* Turn the USB interrupt back on so the bootloader keeps on functioning */ + nvic_enable_interrupt(NVIC_INT_USBHP); + nvic_enable_interrupt(NVIC_INT_USBLP); + /* Error fade */ while (1) { if (CC == TOP_CNT) { |