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