mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 13:31:58 -04:00
Prepare files for export (MicroBlaze project).
This commit is contained in:
parent
6e30a6cb75
commit
248123342b
|
@ -15,7 +15,6 @@ BEGIN PROCESSOR
|
||||||
PARAMETER DRIVER_NAME = cpu
|
PARAMETER DRIVER_NAME = cpu
|
||||||
PARAMETER DRIVER_VER = 1.13.a
|
PARAMETER DRIVER_VER = 1.13.a
|
||||||
PARAMETER HW_INSTANCE = microblaze_0
|
PARAMETER HW_INSTANCE = microblaze_0
|
||||||
PARAMETER EXTRA_COMPILER_FLAGS = -O0 -g
|
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1016,7 +1016,7 @@
|
||||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/FreeRTOS_Source/include}""/>
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/FreeRTOS_Source/include}""/>
|
||||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/MicroBlaze}""/>
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/MicroBlaze}""/>
|
||||||
</option>
|
</option>
|
||||||
<option id="xilinx.gnu.compiler.misc.other.1660455181" name="Other flags" superClass="xilinx.gnu.compiler.misc.other" value="-c -fmessage-length=0" valueType="string"/>
|
<option id="xilinx.gnu.compiler.misc.other.1660455181" name="Other flags" superClass="xilinx.gnu.compiler.misc.other" value="-c -fmessage-length=0 -fno-strict-aliasing" valueType="string"/>
|
||||||
<inputType id="xilinx.gnu.compiler.input.505106416" name="C source files" superClass="xilinx.gnu.compiler.input"/>
|
<inputType id="xilinx.gnu.compiler.input.505106416" name="C source files" superClass="xilinx.gnu.compiler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="xilinx.gnu.mb.cxx.toolchain.compiler.debug.2087155544" name="MicroBlaze g++ compiler" superClass="xilinx.gnu.mb.cxx.toolchain.compiler.debug">
|
<tool id="xilinx.gnu.mb.cxx.toolchain.compiler.debug.2087155544" name="MicroBlaze g++ compiler" superClass="xilinx.gnu.mb.cxx.toolchain.compiler.debug">
|
||||||
|
|
|
@ -78,8 +78,8 @@ extern "C" {
|
||||||
#define portDOUBLE double
|
#define portDOUBLE double
|
||||||
#define portLONG long
|
#define portLONG long
|
||||||
#define portSHORT short
|
#define portSHORT short
|
||||||
#define portSTACK_TYPE unsigned portLONG
|
#define portSTACK_TYPE unsigned long
|
||||||
#define portBASE_TYPE portLONG
|
#define portBASE_TYPE long
|
||||||
|
|
||||||
#if( configUSE_16_BIT_TICKS == 1 )
|
#if( configUSE_16_BIT_TICKS == 1 )
|
||||||
typedef unsigned portSHORT portTickType;
|
typedef unsigned portSHORT portTickType;
|
||||||
|
@ -96,149 +96,6 @@ void microblaze_enable_interrupts( void );
|
||||||
#define portDISABLE_INTERRUPTS() microblaze_disable_interrupts()
|
#define portDISABLE_INTERRUPTS() microblaze_disable_interrupts()
|
||||||
#define portENABLE_INTERRUPTS() microblaze_enable_interrupts()
|
#define portENABLE_INTERRUPTS() microblaze_enable_interrupts()
|
||||||
|
|
||||||
/*
|
|
||||||
* Installs pxHandler as the interrupt handler for the peripheral specified by
|
|
||||||
* the ucInterruptID parameter.
|
|
||||||
*
|
|
||||||
* ucInterruptID:
|
|
||||||
*
|
|
||||||
* The ID of the peripheral that will have pxHandler assigned as its interrupt
|
|
||||||
* handler. Peripheral IDs are defined in the xparameters.h header file, which
|
|
||||||
* is itself part of the BSP project. For example, in the official demo
|
|
||||||
* application for this port, xparameters.h defines the following IDs for the
|
|
||||||
* four possible interrupt sources:
|
|
||||||
*
|
|
||||||
* XPAR_INTC_0_UARTLITE_1_VEC_ID - for the UARTlite peripheral.
|
|
||||||
* XPAR_INTC_0_TMRCTR_0_VEC_ID - for the AXI Timer 0 peripheral.
|
|
||||||
* XPAR_INTC_0_EMACLITE_0_VEC_ID - for the Ethernet lite peripheral.
|
|
||||||
* XPAR_INTC_0_GPIO_1_VEC_ID - for the button inputs.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* pxHandler:
|
|
||||||
*
|
|
||||||
* A pointer to the interrupt handler function itself. This must be a void
|
|
||||||
* function that takes a (void *) parameter.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* pvCallBackRef:
|
|
||||||
*
|
|
||||||
* The parameter passed into the handler function. In many cases this will not
|
|
||||||
* be used and can be NULL. Some times it is used to pass in a reference to
|
|
||||||
* the peripheral instance variable, so it can be accessed from inside the
|
|
||||||
* handler function.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* pdPASS is returned if the function executes successfully. Any other value
|
|
||||||
* being returned indicates that the function did not execute correctly.
|
|
||||||
*/
|
|
||||||
portBASE_TYPE xPortInstallInterruptHandler( unsigned char ucInterruptID, XInterruptHandler pxHandler, void *pvCallBackRef );
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Enables the interrupt, within the interrupt controller, for the peripheral
|
|
||||||
* specified by the ucInterruptID parameter.
|
|
||||||
*
|
|
||||||
* ucInterruptID:
|
|
||||||
*
|
|
||||||
* The ID of the peripheral that will have its interrupt enabled in the
|
|
||||||
* interrupt controller. Peripheral IDs are defined in the xparameters.h header
|
|
||||||
* file, which is itself part of the BSP project. For example, in the official
|
|
||||||
* demo application for this port, xparameters.h defines the following IDs for
|
|
||||||
* the four possible interrupt sources:
|
|
||||||
*
|
|
||||||
* XPAR_INTC_0_UARTLITE_1_VEC_ID - for the UARTlite peripheral.
|
|
||||||
* XPAR_INTC_0_TMRCTR_0_VEC_ID - for the AXI Timer 0 peripheral.
|
|
||||||
* XPAR_INTC_0_EMACLITE_0_VEC_ID - for the Ethernet lite peripheral.
|
|
||||||
* XPAR_INTC_0_GPIO_1_VEC_ID - for the button inputs.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void vPortEnableInterrupt( unsigned char ucInterruptID );
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Disables the interrupt, within the interrupt controller, for the peripheral
|
|
||||||
* specified by the ucInterruptID parameter.
|
|
||||||
*
|
|
||||||
* ucInterruptID:
|
|
||||||
*
|
|
||||||
* The ID of the peripheral that will have its interrupt disabled in the
|
|
||||||
* interrupt controller. Peripheral IDs are defined in the xparameters.h header
|
|
||||||
* file, which is itself part of the BSP project. For example, in the official
|
|
||||||
* demo application for this port, xparameters.h defines the following IDs for
|
|
||||||
* the four possible interrupt sources:
|
|
||||||
*
|
|
||||||
* XPAR_INTC_0_UARTLITE_1_VEC_ID - for the UARTlite peripheral.
|
|
||||||
* XPAR_INTC_0_TMRCTR_0_VEC_ID - for the AXI Timer 0 peripheral.
|
|
||||||
* XPAR_INTC_0_EMACLITE_0_VEC_ID - for the Ethernet lite peripheral.
|
|
||||||
* XPAR_INTC_0_GPIO_1_VEC_ID - for the button inputs.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
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. */
|
/* Critical section macros. */
|
||||||
|
@ -352,6 +209,150 @@ typedef struct PORT_REGISTER_DUMP
|
||||||
|
|
||||||
} xPortRegisterDump;
|
} xPortRegisterDump;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Installs pxHandler as the interrupt handler for the peripheral specified by
|
||||||
|
* the ucInterruptID parameter.
|
||||||
|
*
|
||||||
|
* ucInterruptID:
|
||||||
|
*
|
||||||
|
* The ID of the peripheral that will have pxHandler assigned as its interrupt
|
||||||
|
* handler. Peripheral IDs are defined in the xparameters.h header file, which
|
||||||
|
* is itself part of the BSP project. For example, in the official demo
|
||||||
|
* application for this port, xparameters.h defines the following IDs for the
|
||||||
|
* four possible interrupt sources:
|
||||||
|
*
|
||||||
|
* XPAR_INTC_0_UARTLITE_1_VEC_ID - for the UARTlite peripheral.
|
||||||
|
* XPAR_INTC_0_TMRCTR_0_VEC_ID - for the AXI Timer 0 peripheral.
|
||||||
|
* XPAR_INTC_0_EMACLITE_0_VEC_ID - for the Ethernet lite peripheral.
|
||||||
|
* XPAR_INTC_0_GPIO_1_VEC_ID - for the button inputs.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* pxHandler:
|
||||||
|
*
|
||||||
|
* A pointer to the interrupt handler function itself. This must be a void
|
||||||
|
* function that takes a (void *) parameter.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* pvCallBackRef:
|
||||||
|
*
|
||||||
|
* The parameter passed into the handler function. In many cases this will not
|
||||||
|
* be used and can be NULL. Some times it is used to pass in a reference to
|
||||||
|
* the peripheral instance variable, so it can be accessed from inside the
|
||||||
|
* handler function.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* pdPASS is returned if the function executes successfully. Any other value
|
||||||
|
* being returned indicates that the function did not execute correctly.
|
||||||
|
*/
|
||||||
|
portBASE_TYPE xPortInstallInterruptHandler( unsigned char ucInterruptID, XInterruptHandler pxHandler, void *pvCallBackRef );
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enables the interrupt, within the interrupt controller, for the peripheral
|
||||||
|
* specified by the ucInterruptID parameter.
|
||||||
|
*
|
||||||
|
* ucInterruptID:
|
||||||
|
*
|
||||||
|
* The ID of the peripheral that will have its interrupt enabled in the
|
||||||
|
* interrupt controller. Peripheral IDs are defined in the xparameters.h header
|
||||||
|
* file, which is itself part of the BSP project. For example, in the official
|
||||||
|
* demo application for this port, xparameters.h defines the following IDs for
|
||||||
|
* the four possible interrupt sources:
|
||||||
|
*
|
||||||
|
* XPAR_INTC_0_UARTLITE_1_VEC_ID - for the UARTlite peripheral.
|
||||||
|
* XPAR_INTC_0_TMRCTR_0_VEC_ID - for the AXI Timer 0 peripheral.
|
||||||
|
* XPAR_INTC_0_EMACLITE_0_VEC_ID - for the Ethernet lite peripheral.
|
||||||
|
* XPAR_INTC_0_GPIO_1_VEC_ID - for the button inputs.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void vPortEnableInterrupt( unsigned char ucInterruptID );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disables the interrupt, within the interrupt controller, for the peripheral
|
||||||
|
* specified by the ucInterruptID parameter.
|
||||||
|
*
|
||||||
|
* ucInterruptID:
|
||||||
|
*
|
||||||
|
* The ID of the peripheral that will have its interrupt disabled in the
|
||||||
|
* interrupt controller. Peripheral IDs are defined in the xparameters.h header
|
||||||
|
* file, which is itself part of the BSP project. For example, in the official
|
||||||
|
* demo application for this port, xparameters.h defines the following IDs for
|
||||||
|
* the four possible interrupt sources:
|
||||||
|
*
|
||||||
|
* XPAR_INTC_0_UARTLITE_1_VEC_ID - for the UARTlite peripheral.
|
||||||
|
* XPAR_INTC_0_TMRCTR_0_VEC_ID - for the AXI Timer 0 peripheral.
|
||||||
|
* XPAR_INTC_0_EMACLITE_0_VEC_ID - for the Ethernet lite peripheral.
|
||||||
|
* XPAR_INTC_0_GPIO_1_VEC_ID - for the button inputs.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
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 );
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue