portBASE_TYPE xPortStartScheduler( void )\r
{\r
extern void ( vStartFirstTask )( void );\r
-int iStatus;\r
\r
/* Setup the hardware to generate the tick. Interrupts are disabled when\r
this function is called. */\r
memset( pulISRStack, portISR_STACK_FILL_VALUE, configMINIMAL_STACK_SIZE * sizeof( portSTACK_TYPE ) );\r
pulISRStack += ( configMINIMAL_STACK_SIZE - 1 );\r
\r
- /* Enable exceptions. */\r
- microblaze_enable_interrupts();\r
-\r
- if( iStatus == XST_SUCCESS )\r
- {\r
- /* Kick off the first task. */\r
- vStartFirstTask();\r
- }\r
+ /* From here on, the created tasks will be executing. */\r
+ vStartFirstTask();\r
}\r
\r
/* Should not get here as the tasks are now running! */\r
static portBASE_TYPE prvInitialiseInterruptController( void )\r
{\r
portBASE_TYPE xStatus;\r
+extern Xil_ExceptionHandler vPortFreeRTOSInterruptHandler;\r
\r
xStatus = XIntc_Initialize( &xInterruptControllerInstance, configINTERRUPT_CONTROLLER_TO_USE );\r
\r
\r
/* Register the interrupt controller handle that uses the exception\r
table. */\r
- Xil_ExceptionRegisterHandler( XIL_EXCEPTION_ID_INT, ( Xil_ExceptionHandler ) XIntc_DeviceInterruptHandler, NULL );\r
+ Xil_ExceptionRegisterHandler( XIL_EXCEPTION_ID_INT, vPortFreeRTOSInterruptHandler, NULL );\r
\r
/* Service all pending interrupts each time the handler is entered. */\r
XIntc_SetIntrSvcOption( xInterruptControllerInstance.BaseAddress, XIN_SVC_ALL_ISRS_OPTION );\r
+/*\r
+ FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+\r
+\r
+ FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by:\r
+ Atollic AB - Atollic provides professional embedded systems development\r
+ tools for C/C++ development, code analysis and test automation.\r
+ See http://www.atollic.com\r
+\r
+\r
+ ***************************************************************************\r
+ * *\r
+ * FreeRTOS tutorial books are available in pdf and paperback. *\r
+ * Complete, revised, and edited pdf reference manuals are also *\r
+ * available. *\r
+ * *\r
+ * Purchasing FreeRTOS documentation will not only help you, by *\r
+ * ensuring you get running as quickly as possible and with an *\r
+ * in-depth knowledge of how to use FreeRTOS, it will also help *\r
+ * the FreeRTOS project to continue with its mission of providing *\r
+ * professional grade, cross platform, de facto standard solutions *\r
+ * for microcontrollers - completely free of charge! *\r
+ * *\r
+ * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *\r
+ * *\r
+ * Thank you for using FreeRTOS, and thank you for your support! *\r
+ * *\r
+ ***************************************************************************\r
+\r
+\r
+ This file is part of the FreeRTOS distribution.\r
+\r
+ FreeRTOS is free software; you can redistribute it and/or modify it under\r
+ the terms of the GNU General Public License (version 2) as published by the\r
+ Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+ >>>NOTE<<< The modification to the GPL is included to allow you to\r
+ distribute a combined work that includes FreeRTOS without being obliged to\r
+ provide the source code for proprietary components outside of the FreeRTOS\r
+ kernel. FreeRTOS is distributed in the hope that it will be useful, but\r
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ more details. You should have received a copy of the GNU General Public\r
+ License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+ can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+ by writing to Richard Barry, contact details for whom are available on the\r
+ FreeRTOS WEB site.\r
+\r
+ 1 tab == 4 spaces!\r
+\r
+ http://www.FreeRTOS.org - Documentation, latest information, license and\r
+ contact details.\r
+\r
+ http://www.SafeRTOS.com - A version that is certified for use in safety\r
+ critical systems.\r
+\r
+ http://www.OpenRTOS.com - Commercial support, development, porting,\r
+ licensing and training services.\r
+*/\r
+\r
.extern pxCurrentTCB\r
- .extern vTaskISRHandler\r
+ .extern XIntc_DeviceInterruptHandler\r
.extern vTaskSwitchContext\r
.extern uxCriticalNesting\r
.extern pulISRStack\r
\r
- .global _interrupt_handler\r
+ .global vPortFreeRTOSInterruptHandler\r
.global VPortYieldASM\r
.global vStartFirstTask\r
\r
.align 2\r
\r
\r
-_interrupt_handler:\r
+vPortFreeRTOSInterruptHandler:\r
portSAVE_CONTEXT\r
/* Entered via an interrupt so interrupts must be enabled in msr. */\r
ori r31, r31, 2\r
/* Now switch to use the ISR stack. */\r
lwi r3, r0, pulISRStack\r
add r1, r3, r0\r
- bralid r15, vTaskISRHandler\r
+ bralid r15, XIntc_DeviceInterruptHandler\r
or r0, r0, r0\r
portRESTORE_CONTEXT\r
\r