diff --git a/FreeRTOS/Demo/RISC-V-spike-htif_GCC/main.c b/FreeRTOS/Demo/RISC-V-spike-htif_GCC/main.c index 5d18bedf7..f22ed701c 100644 --- a/FreeRTOS/Demo/RISC-V-spike-htif_GCC/main.c +++ b/FreeRTOS/Demo/RISC-V-spike-htif_GCC/main.c @@ -31,11 +31,18 @@ /* Run a simple demo just prints 'Blink' */ #define DEMO_BLINKY 1 +extern void freertos_risc_v_trap_handler( void ); + void vApplicationMallocFailedHook( void ); void vApplicationIdleHook( void ); void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ); void vApplicationTickHook( void ); +/* + * Setup the Spike simulator to run this demo. + */ +static void prvSetupSpike( void ); + int main_blinky( void ); /*-----------------------------------------------------------*/ @@ -43,6 +50,7 @@ int main_blinky( void ); int main( void ) { int ret; + prvSetupSpike(); #if defined(DEMO_BLINKY) ret = main_blinky(); @@ -52,6 +60,11 @@ int main( void ) return ret; } +/*-----------------------------------------------------------*/ +static void prvSetupSpike( void ) +{ + __asm__ volatile( "csrw mtvec, %0" :: "r"( freertos_risc_v_trap_handler ) ); +} /*-----------------------------------------------------------*/