|
|
@ -56,19 +56,19 @@
|
|
|
|
***************************************************************************
|
|
|
|
***************************************************************************
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
http://www.FreeRTOS.org - Documentation, books, training, latest versions,
|
|
|
|
http://www.FreeRTOS.org - Documentation, books, training, latest versions,
|
|
|
|
license and Real Time Engineers Ltd. contact details.
|
|
|
|
license and Real Time Engineers Ltd. contact details.
|
|
|
|
|
|
|
|
|
|
|
|
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
|
|
|
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
|
|
|
including FreeRTOS+Trace - an indispensable productivity tool, and our new
|
|
|
|
including FreeRTOS+Trace - an indispensable productivity tool, and our new
|
|
|
|
fully thread aware and reentrant UDP/IP stack.
|
|
|
|
fully thread aware and reentrant UDP/IP stack.
|
|
|
|
|
|
|
|
|
|
|
|
http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
|
|
|
|
http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
|
|
|
|
Integrity Systems, who sell the code with commercial support,
|
|
|
|
Integrity Systems, who sell the code with commercial support,
|
|
|
|
indemnification and middleware, under the OpenRTOS brand.
|
|
|
|
indemnification and middleware, under the OpenRTOS brand.
|
|
|
|
|
|
|
|
|
|
|
|
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
|
|
|
|
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
|
|
|
|
engineered and independently SIL3 certified version for use in safety and
|
|
|
|
engineered and independently SIL3 certified version for use in safety and
|
|
|
|
mission critical applications that require provable dependability.
|
|
|
|
mission critical applications that require provable dependability.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
@ -81,7 +81,7 @@ extern "C" {
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/*-----------------------------------------------------------
|
|
|
|
/*-----------------------------------------------------------
|
|
|
|
* Port specific definitions.
|
|
|
|
* Port specific definitions.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* The settings in this file configure FreeRTOS correctly for the
|
|
|
|
* The settings in this file configure FreeRTOS correctly for the
|
|
|
|
* given hardware and compiler.
|
|
|
|
* given hardware and compiler.
|
|
|
@ -106,19 +106,21 @@ extern "C" {
|
|
|
|
typedef unsigned portLONG portTickType;
|
|
|
|
typedef unsigned portLONG portTickType;
|
|
|
|
#define portMAX_DELAY ( portTickType ) 0xffffffff
|
|
|
|
#define portMAX_DELAY ( portTickType ) 0xffffffff
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
|
|
/* Architecture specifics. */
|
|
|
|
/* Architecture specifics. */
|
|
|
|
#define portSTACK_GROWTH ( -1 )
|
|
|
|
#define portSTACK_GROWTH ( -1 )
|
|
|
|
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )
|
|
|
|
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )
|
|
|
|
#define portBYTE_ALIGNMENT 8
|
|
|
|
#define portBYTE_ALIGNMENT 8
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Scheduler utilities. */
|
|
|
|
/* Scheduler utilities. */
|
|
|
|
extern void vPortYieldFromISR( void );
|
|
|
|
extern void vPortYield( void );
|
|
|
|
#define portYIELD() vPortYieldFromISR()
|
|
|
|
#define portNVIC_INT_CTRL_REG ( * ( ( volatile unsigned long * ) 0xe000ed04 ) )
|
|
|
|
#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR()
|
|
|
|
#define portNVIC_PENDSVSET_BIT ( 1UL << 28UL )
|
|
|
|
|
|
|
|
#define portYIELD() vPortYield()
|
|
|
|
|
|
|
|
#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
|
|
/* Critical section management. */
|
|
|
|
/* Critical section management. */
|
|
|
@ -133,7 +135,7 @@ extern void vPortClearInterruptMask( unsigned long ulNewMaskValue );
|
|
|
|
#define portENTER_CRITICAL() vPortEnterCritical()
|
|
|
|
#define portENTER_CRITICAL() vPortEnterCritical()
|
|
|
|
#define portEXIT_CRITICAL() vPortExitCritical()
|
|
|
|
#define portEXIT_CRITICAL() vPortExitCritical()
|
|
|
|
|
|
|
|
|
|
|
|
/* There are an uneven number of items on the initial stack, so
|
|
|
|
/* There are an uneven number of items on the initial stack, so
|
|
|
|
portALIGNMENT_ASSERT_pxCurrentTCB() will trigger false positive asserts. */
|
|
|
|
portALIGNMENT_ASSERT_pxCurrentTCB() will trigger false positive asserts. */
|
|
|
|
#define portALIGNMENT_ASSERT_pxCurrentTCB ( void )
|
|
|
|
#define portALIGNMENT_ASSERT_pxCurrentTCB ( void )
|
|
|
|
|
|
|
|
|
|
|
|