diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/init/startup.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/init/startup.c index 0c8ea57a..bd245f7a 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/init/startup.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/init/startup.c @@ -36,7 +36,6 @@ extern void xPortPendSVHandler( void ); extern void xPortSysTickHandler( void ); extern void uart_init(); extern int main(); -extern void isr_starter( void ); // main_tmr.c void __attribute__( ( weak ) ) EthernetISR( void ); @@ -159,6 +158,23 @@ void Default_Handler6( void ) } } +__attribute__((weak)) void ISR_0_Handler( void ) {} +__attribute__((weak)) void ISR_1_Handler( void ) {} +__attribute__((weak)) void ISR_2_Handler( void ) {} +__attribute__((weak)) void ISR_3_Handler( void ) {} +__attribute__((weak)) void ISR_4_Handler( void ) {} +__attribute__((weak)) void ISR_5_Handler( void ) {} +__attribute__((weak)) void ISR_6_Handler( void ) {} +__attribute__((weak)) void ISR_7_Handler( void ) {} +__attribute__((weak)) void ISR_8_Handler( void ) {} +__attribute__((weak)) void ISR_9_Handler( void ) {} +__attribute__((weak)) void ISR_10_Handler( void ) {} +__attribute__((weak)) void ISR_11_Handler( void ) {} +__attribute__((weak)) void ISR_12_Handler( void ) {} +__attribute__((weak)) void ISR_13_Handler( void ) {} +__attribute__((weak)) void ISR_14_Handler( void ) {} +__attribute__((weak)) void ISR_15_Handler( void ) {} + const uint32_t * isr_vector[] __attribute__( ( section( ".isr_vector" ) ) ) = { ( uint32_t * ) &_estack, @@ -177,27 +193,37 @@ const uint32_t * isr_vector[] __attribute__( ( section( ".isr_vector" ) ) ) = 0, /* reserved */ ( uint32_t * ) &xPortPendSVHandler, /* PendSV handler -2 */ ( uint32_t * ) &xPortSysTickHandler, /* SysTick_Handler -1 */ - ( uint32_t * ) &isr_starter, /* uart0 receive 0 */ - 0, /* uart0 transmit */ - 0, /* uart1 receive */ - 0, /* uart1 transmit */ - 0, /* uart 2 receive */ - 0, /* uart 2 transmit */ - 0, /* GPIO 0 combined interrupt */ - 0, /* GPIO 2 combined interrupt */ - 0, /* Timer 0 */ - 0, /* Timer 1 */ - 0, /* Dial Timer */ - 0, /* SPI0 SPI1 */ - 0, /* uart overflow 1, 2,3 */ - 0, /* Ethernet 13 */ + ( uint32_t * ) &ISR_0_Handler, /* uart0 receive 0 */ + ( uint32_t * ) &ISR_1_Handler, /* uart0 transmit */ + ( uint32_t * ) &ISR_2_Handler, /* uart1 receive */ + ( uint32_t * ) &ISR_3_Handler, /* uart1 transmit */ + ( uint32_t * ) &ISR_4_Handler, /* uart 2 receive */ + ( uint32_t * ) &ISR_5_Handler, /* uart 2 transmit */ + ( uint32_t * ) &ISR_6_Handler, /* GPIO 0 combined interrupt */ + ( uint32_t * ) &ISR_7_Handler, /* GPIO 2 combined interrupt */ + ( uint32_t * ) &ISR_8_Handler, /* Timer 0 */ + ( uint32_t * ) &ISR_9_Handler, /* Timer 1 */ + ( uint32_t * ) &ISR_10_Handler, /* Dial Timer */ + ( uint32_t * ) &ISR_11_Handler, /* SPI0 SPI1 */ + ( uint32_t * ) &ISR_12_Handler, /* uart overflow 1, 2,3 */ + ( uint32_t * ) &ISR_13_Handler, /* Ethernet 13 */ }; void _start( void ) { uart_init(); - NVIC_EnableIRQ(0); + NVIC_EnableIRQ(0); // Enable each external interrupt source individually + NVIC_EnableIRQ(1); + NVIC_EnableIRQ(2); + NVIC_EnableIRQ(3); + NVIC_EnableIRQ(4); + NVIC_EnableIRQ(5); NVIC_SetPriority (0, 6); // need to stay above configMAX_SYSCALL_INTERRUPT_PRIORITY + NVIC_SetPriority (1, 6); + NVIC_SetPriority (2, 6); + NVIC_SetPriority (3, 6); + NVIC_SetPriority (4, 6); + NVIC_SetPriority (5, 6); main( 0, 0 ); exit( 0 ); } diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_gen_3.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_gen_3.c index 8c66e988..62625270 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_gen_3.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_gen_3.c @@ -400,6 +400,6 @@ void main_gen(void) { trigger_Qemu_break(); } -void isr_starter( void ) +void ISR_0_Handler( void ) { } \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_interact.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_interact.c index 31422ef8..7739239a 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_interact.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_interact.c @@ -330,7 +330,7 @@ void main_interact(void) { trigger_Qemu_break(); } -void isr_starter( void ) +void ISR_0_Handler( void ) { puts("Interrupt"); if (h_task_handle) { diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_lift.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_lift.c index 77cd8339..fd928530 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_lift.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_lift.c @@ -175,7 +175,7 @@ static void prvController( void * pvParameters ) } } -// void isr_starter( void ) +// void ISR_0_Handler( void ) // { // } diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_manual.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_manual.c index 47567dd7..9f225701 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_manual.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_manual.c @@ -513,7 +513,7 @@ void vWatersIdleFunction() { } } -void isr_starter( void ) +void ISR_0_Handler( void ) { puts("Interrupt"); if (prvC3T1) { diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_branchless.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_branchless.c index 71704456..c93eacb2 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_branchless.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_branchless.c @@ -240,7 +240,7 @@ void vWatersIdleFunction() { } } -void isr_starter( void ) +void ISR_0_Handler( void ) { } diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_int.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_int.c index 0784d466..16a64aa7 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_int.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_int.c @@ -199,7 +199,7 @@ static void prvSpor( void * pvParameters ) } -void isr_starter( void ) +void ISR_0_Handler( void ) { if (xReplB) { vTaskNotifyGiveFromISR(xReplB, NULL); diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_longint.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_longint.c index 987f48b1..6b6b4bec 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_longint.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_micro_longint.c @@ -202,7 +202,7 @@ static void prvSpor( void * pvParameters ) } -void isr_starter( void ) +void ISR_0_Handler( void ) { if (xSpor) { vTaskNotifyGiveFromISR(xSpor, NULL); diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_minimal.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_minimal.c index ad1433a6..f87cf51a 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_minimal.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_minimal.c @@ -142,7 +142,7 @@ static void prvThreadHigh( void * pvParameters ) } } -void isr_starter( void ) +void ISR_0_Handler( void ) { } diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tacle.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tacle.c index 494cb062..dcda7877 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tacle.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tacle.c @@ -243,7 +243,7 @@ static void prvStage4( void * pvParameters ) trigger_Qemu_break(); } } -void isr_starter( void ) +void ISR_0_Handler( void ) { } diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tmr.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tmr.c index 4576b01e..1edfcb03 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tmr.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_tmr.c @@ -293,7 +293,7 @@ static void prvSporadicTask( void * pvParameters ) } } } -void isr_starter( void ) +void ISR_0_Handler( void ) { if (xSporadic) { vTaskNotifyGiveFromISR(xSporadic, NULL); diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_watersv2.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_watersv2.c index 3ab69438..88786b16 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_watersv2.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_watersv2.c @@ -549,7 +549,7 @@ void vWatersIdleFunction() { } } -void isr_starter( void ) +void ISR_0_Handler( void ) { puts("Interrupt"); if (xTask397) {