]> git.sur5r.net Git - freertos/commitdiff
Comment the exception handling functions in the MicroBlaze portmacro.h file.
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 4 Jul 2011 20:18:29 +0000 (20:18 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 4 Jul 2011 20:18:29 +0000 (20:18 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1484 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemoSource/FreeRTOS_Source/portable/GCC/MicroBlaze/portmacro.h

index 940dd79369afbf8fe3443123a1bd83044ffc5677..ae01b04521c947f222de12c331ddcd4301c771d5 100644 (file)
@@ -174,8 +174,71 @@ void vPortEnableInterrupt( unsigned char ucInterruptID );
  */\r
 void vPortDisableInterrupt( unsigned char ucInterruptID );\r
 \r
+/*\r
+ * This is an application defined callback function used to install the tick\r
+ * interrupt handler.  It is provided as an application callback because the \r
+ * kernel will run on lots of different MicroBlaze and FPGA configurations - not \r
+ * all of which will have the same timer peripherals defined or available.  This \r
+ * example uses the AXI Timer 0.  If that is available on your hardware platform \r
+ * then this example callback implementation should not require modification.  \r
+ * The name of the interrupt handler that should be installed is vPortTickISR(), \r
+ * which the function below declares as an extern.\r
+ */ \r
 void vApplicationSetupTimerInterrupt( void );\r
 \r
+/* \r
+ * This is an application defined callback function used to clear whichever\r
+ * interrupt was installed by the the vApplicationSetupTimerInterrupt() callback\r
+ * function - in this case the interrupt generated by the AXI timer.  It is \r
+ * provided as an application callback because the kernel will run on lots of \r
+ * different MicroBlaze and FPGA configurations - not all of which will have the \r
+ * same timer peripherals defined or available.  This example uses the AXI Timer 0.  \r
+ * If that is available on your hardware platform then this example callback \r
+ * implementation should not require modification provided the example definition\r
+ * of vApplicationSetupTimerInterrupt() is also not modified. \r
+ */\r
+void vApplicationClearTimerInterrupt( void )\r
+\r
+/*\r
+ * vPortExceptionsInstallHandlers() is only available when the MicroBlaze\r
+ * is configured to include exception functionality, and \r
+ * configINSTALL_EXCEPTION_HANDLERS is set to 1 in FreeRTOSConfig.h.\r
+ *\r
+ * vPortExceptionsInstallHandlers() installs the FreeRTOS exception handler\r
+ * for every possible exception cause.  \r
+ *\r
+ * vPortExceptionsInstallHandlers() can be called explicitly from application\r
+ * code.  After that is done, the default FreeRTOS exception handler that will\r
+ * have been installed can be replaced for any specific exception cause by using \r
+ * the standard Xilinx library function microblaze_register_exception_handler().\r
+ *\r
+ * If vPortExceptionsInstallHandlers() is not called explicitly by the \r
+ * application, it will be called automatically by the kernel the first time\r
+ * xPortInstallInterruptHandler() is called.  At that time, any exception \r
+ * handlers that may have already been installed will be replaced.\r
+ *\r
+ * See the description of vApplicationExceptionRegisterDump() for information\r
+ * on the processing performed by the FreeRTOS exception handler.\r
+ */\r
+void vPortExceptionsInstallHandlers( void );\r
+\r
+/*\r
+ * The FreeRTOS exception handler fills an xPortRegisterDump structure (defined \r
+ * in portmacro.h) with the MicroBlaze context, as it was at the time the \r
+ * exception occurred.  The exception handler then calls\r
+ * vApplicationExceptionRegisterDump(), passing in the completed\r
+ * xPortRegisterDump structure as its parameter.\r
+ *\r
+ * The FreeRTOS kernel provides its own implementation of\r
+ * vApplicationExceptionRegisterDump(), but the kernel provided implementation \r
+ * is declared as being 'weak'.  The weak definition allows the application \r
+ * writer to provide their own implementation, should they wish to use the \r
+ * register dump information.  For example, an implementation could be provided\r
+ * that wrote the register dump data to a display, or a UART port.\r
+ */\r
+void vApplicationExceptionRegisterDump( xPortRegisterDump *xRegisterDump );\r
+\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* Critical section macros. */\r
@@ -289,9 +352,6 @@ typedef struct PORT_REGISTER_DUMP
 \r
 } xPortRegisterDump;\r
 \r
-void vPortExceptionsInstallHandlers( void );\r
-void vApplicationExceptionRegisterDump( xPortRegisterDump *xRegisterDump );\r
-\r
 #ifdef __cplusplus\r
 }\r
 #endif\r