mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-04 02:59:01 +01:00 
			
		
		
		
	Format portmacro.h in arm CM0 ports
This commit is contained in:
		
							parent
							
								
									686b6e62eb
								
							
						
					
					
						commit
						714e543247
					
				@ -28,11 +28,11 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef PORTMACRO_H
 | 
			
		||||
    #define PORTMACRO_H
 | 
			
		||||
#define PORTMACRO_H
 | 
			
		||||
 | 
			
		||||
    #ifdef __cplusplus
 | 
			
		||||
        extern "C" {
 | 
			
		||||
    #endif
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------
 | 
			
		||||
 * Port specific definitions.
 | 
			
		||||
@ -45,84 +45,86 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Type definitions. */
 | 
			
		||||
    #define portCHAR          char
 | 
			
		||||
    #define portFLOAT         float
 | 
			
		||||
    #define portDOUBLE        double
 | 
			
		||||
    #define portLONG          long
 | 
			
		||||
    #define portSHORT         short
 | 
			
		||||
    #define portSTACK_TYPE    uint32_t
 | 
			
		||||
    #define portBASE_TYPE     long
 | 
			
		||||
#define portCHAR          char
 | 
			
		||||
#define portFLOAT         float
 | 
			
		||||
#define portDOUBLE        double
 | 
			
		||||
#define portLONG          long
 | 
			
		||||
#define portSHORT         short
 | 
			
		||||
#define portSTACK_TYPE    uint32_t
 | 
			
		||||
#define portBASE_TYPE     long
 | 
			
		||||
 | 
			
		||||
    typedef portSTACK_TYPE   StackType_t;
 | 
			
		||||
    typedef long             BaseType_t;
 | 
			
		||||
    typedef unsigned long    UBaseType_t;
 | 
			
		||||
typedef portSTACK_TYPE   StackType_t;
 | 
			
		||||
typedef long             BaseType_t;
 | 
			
		||||
typedef unsigned long    UBaseType_t;
 | 
			
		||||
 | 
			
		||||
    #if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
 | 
			
		||||
        typedef uint16_t     TickType_t;
 | 
			
		||||
        #define portMAX_DELAY              ( TickType_t ) 0xffff
 | 
			
		||||
    #elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
 | 
			
		||||
        typedef uint32_t     TickType_t;
 | 
			
		||||
        #define portMAX_DELAY              ( TickType_t ) 0xffffffffUL
 | 
			
		||||
#if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
 | 
			
		||||
    typedef uint16_t     TickType_t;
 | 
			
		||||
    #define portMAX_DELAY              ( TickType_t ) 0xffff
 | 
			
		||||
#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
 | 
			
		||||
    typedef uint32_t     TickType_t;
 | 
			
		||||
    #define portMAX_DELAY              ( TickType_t ) 0xffffffffUL
 | 
			
		||||
 | 
			
		||||
/* 32-bit tick type on a 32-bit architecture, so reads of the tick count do
 | 
			
		||||
 * not need to be guarded with a critical section. */
 | 
			
		||||
        #define portTICK_TYPE_IS_ATOMIC    1
 | 
			
		||||
    #else
 | 
			
		||||
        #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
 | 
			
		||||
    #endif
 | 
			
		||||
    #define portTICK_TYPE_IS_ATOMIC    1
 | 
			
		||||
#else
 | 
			
		||||
    #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Architecture specifics. */
 | 
			
		||||
    #define portSTACK_GROWTH      ( -1 )
 | 
			
		||||
    #define portTICK_PERIOD_MS    ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
 | 
			
		||||
    #define portBYTE_ALIGNMENT    8
 | 
			
		||||
    #define portDONT_DISCARD      __attribute__( ( used ) )
 | 
			
		||||
    #define portNORETURN         __attribute__( ( noreturn ) )
 | 
			
		||||
#define portSTACK_GROWTH      ( -1 )
 | 
			
		||||
#define portTICK_PERIOD_MS    ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
 | 
			
		||||
#define portBYTE_ALIGNMENT    8
 | 
			
		||||
#define portDONT_DISCARD      __attribute__( ( used ) )
 | 
			
		||||
#define portNORETURN          __attribute__( ( noreturn ) )
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Scheduler utilities. */
 | 
			
		||||
    extern void vPortYield( void );
 | 
			
		||||
    #define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
    #define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
    #define portYIELD()                                 vPortYield()
 | 
			
		||||
    #define portEND_SWITCHING_ISR( xSwitchRequired )    do { if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; } while( 0 )
 | 
			
		||||
    #define portYIELD_FROM_ISR( x )                     portEND_SWITCHING_ISR( x )
 | 
			
		||||
extern void vPortYield( void );
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portYIELD()                vPortYield()
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )                                     \
 | 
			
		||||
        do { if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; } \
 | 
			
		||||
        while( 0 )
 | 
			
		||||
#define portYIELD_FROM_ISR( x )    portEND_SWITCHING_ISR( x )
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Critical section management. */
 | 
			
		||||
    extern void vPortEnterCritical( void );
 | 
			
		||||
    extern void vPortExitCritical( void );
 | 
			
		||||
    extern uint32_t ulSetInterruptMaskFromISR( void ) __attribute__( ( naked ) );
 | 
			
		||||
    extern void vClearInterruptMaskFromISR( uint32_t ulMask )  __attribute__( ( naked ) );
 | 
			
		||||
extern void vPortEnterCritical( void );
 | 
			
		||||
extern void vPortExitCritical( void );
 | 
			
		||||
extern uint32_t ulSetInterruptMaskFromISR( void ) __attribute__( ( naked ) );
 | 
			
		||||
extern void vClearInterruptMaskFromISR( uint32_t ulMask )  __attribute__( ( naked ) );
 | 
			
		||||
 | 
			
		||||
    #define portSET_INTERRUPT_MASK_FROM_ISR()         ulSetInterruptMaskFromISR()
 | 
			
		||||
    #define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    vClearInterruptMaskFromISR( x )
 | 
			
		||||
    #define portDISABLE_INTERRUPTS()                  __asm volatile ( " cpsid i " ::: "memory" )
 | 
			
		||||
    #define portENABLE_INTERRUPTS()                   __asm volatile ( " cpsie i " ::: "memory" )
 | 
			
		||||
    #define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
    #define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
#define portSET_INTERRUPT_MASK_FROM_ISR()         ulSetInterruptMaskFromISR()
 | 
			
		||||
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    vClearInterruptMaskFromISR( x )
 | 
			
		||||
#define portDISABLE_INTERRUPTS()                  __asm volatile ( " cpsid i " ::: "memory" )
 | 
			
		||||
#define portENABLE_INTERRUPTS()                   __asm volatile ( " cpsie i " ::: "memory" )
 | 
			
		||||
#define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
#define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Tickless idle/low power functionality. */
 | 
			
		||||
    #ifndef portSUPPRESS_TICKS_AND_SLEEP
 | 
			
		||||
        extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime );
 | 
			
		||||
        #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )    vPortSuppressTicksAndSleep( xExpectedIdleTime )
 | 
			
		||||
    #endif
 | 
			
		||||
#ifndef portSUPPRESS_TICKS_AND_SLEEP
 | 
			
		||||
    extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime );
 | 
			
		||||
    #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )    vPortSuppressTicksAndSleep( xExpectedIdleTime )
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Task function macros as described on the FreeRTOS.org WEB site. */
 | 
			
		||||
    #define portTASK_FUNCTION_PROTO( vFunction, pvParameters )    void vFunction( void * pvParameters )
 | 
			
		||||
    #define portTASK_FUNCTION( vFunction, pvParameters )          void vFunction( void * pvParameters )
 | 
			
		||||
#define portTASK_FUNCTION_PROTO( vFunction, pvParameters )    void vFunction( void * pvParameters )
 | 
			
		||||
#define portTASK_FUNCTION( vFunction, pvParameters )          void vFunction( void * pvParameters )
 | 
			
		||||
 | 
			
		||||
    #define portNOP()
 | 
			
		||||
#define portNOP()
 | 
			
		||||
 | 
			
		||||
    #define portMEMORY_BARRIER()    __asm volatile ( "" ::: "memory" )
 | 
			
		||||
#define portMEMORY_BARRIER()    __asm volatile ( "" ::: "memory" )
 | 
			
		||||
 | 
			
		||||
    #ifdef __cplusplus
 | 
			
		||||
        }
 | 
			
		||||
    #endif
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* PORTMACRO_H */
 | 
			
		||||
 | 
			
		||||
@ -27,11 +27,11 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef PORTMACRO_H
 | 
			
		||||
    #define PORTMACRO_H
 | 
			
		||||
#define PORTMACRO_H
 | 
			
		||||
 | 
			
		||||
    #ifdef __cplusplus
 | 
			
		||||
        extern "C" {
 | 
			
		||||
    #endif
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------
 | 
			
		||||
 * Port specific definitions.
 | 
			
		||||
@ -44,87 +44,87 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Type definitions. */
 | 
			
		||||
    #define portCHAR          char
 | 
			
		||||
    #define portFLOAT         float
 | 
			
		||||
    #define portDOUBLE        double
 | 
			
		||||
    #define portLONG          long
 | 
			
		||||
    #define portSHORT         short
 | 
			
		||||
    #define portSTACK_TYPE    uint32_t
 | 
			
		||||
    #define portBASE_TYPE     long
 | 
			
		||||
#define portCHAR          char
 | 
			
		||||
#define portFLOAT         float
 | 
			
		||||
#define portDOUBLE        double
 | 
			
		||||
#define portLONG          long
 | 
			
		||||
#define portSHORT         short
 | 
			
		||||
#define portSTACK_TYPE    uint32_t
 | 
			
		||||
#define portBASE_TYPE     long
 | 
			
		||||
 | 
			
		||||
    typedef portSTACK_TYPE   StackType_t;
 | 
			
		||||
    typedef long             BaseType_t;
 | 
			
		||||
    typedef unsigned long    UBaseType_t;
 | 
			
		||||
typedef portSTACK_TYPE   StackType_t;
 | 
			
		||||
typedef long             BaseType_t;
 | 
			
		||||
typedef unsigned long    UBaseType_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
 | 
			
		||||
        typedef uint16_t     TickType_t;
 | 
			
		||||
        #define portMAX_DELAY              ( TickType_t ) 0xffff
 | 
			
		||||
    #elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
 | 
			
		||||
        typedef uint32_t     TickType_t;
 | 
			
		||||
        #define portMAX_DELAY              ( TickType_t ) 0xffffffffUL
 | 
			
		||||
#if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
 | 
			
		||||
    typedef uint16_t     TickType_t;
 | 
			
		||||
    #define portMAX_DELAY              ( TickType_t ) 0xffff
 | 
			
		||||
#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
 | 
			
		||||
    typedef uint32_t     TickType_t;
 | 
			
		||||
    #define portMAX_DELAY              ( TickType_t ) 0xffffffffUL
 | 
			
		||||
 | 
			
		||||
/* 32-bit tick type on a 32-bit architecture, so reads of the tick count do
 | 
			
		||||
 * not need to be guarded with a critical section. */
 | 
			
		||||
        #define portTICK_TYPE_IS_ATOMIC    1
 | 
			
		||||
    #else
 | 
			
		||||
        #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
 | 
			
		||||
    #endif
 | 
			
		||||
    #define portTICK_TYPE_IS_ATOMIC    1
 | 
			
		||||
#else
 | 
			
		||||
    #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Architecture specifics. */
 | 
			
		||||
    #define portSTACK_GROWTH      ( -1 )
 | 
			
		||||
    #define portTICK_PERIOD_MS    ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
 | 
			
		||||
    #define portBYTE_ALIGNMENT    8
 | 
			
		||||
#define portSTACK_GROWTH      ( -1 )
 | 
			
		||||
#define portTICK_PERIOD_MS    ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
 | 
			
		||||
#define portBYTE_ALIGNMENT    8
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Scheduler utilities. */
 | 
			
		||||
    extern void vPortYield( void );
 | 
			
		||||
    #define portNVIC_INT_CTRL                           ( ( volatile uint32_t * ) 0xe000ed04 )
 | 
			
		||||
    #define portNVIC_PENDSVSET                          0x10000000
 | 
			
		||||
    #define portYIELD()                                 vPortYield()
 | 
			
		||||
    #define portEND_SWITCHING_ISR( xSwitchRequired )    if( xSwitchRequired ) *( portNVIC_INT_CTRL ) = portNVIC_PENDSVSET
 | 
			
		||||
    #define portYIELD_FROM_ISR( x )                     portEND_SWITCHING_ISR( x )
 | 
			
		||||
extern void vPortYield( void );
 | 
			
		||||
#define portNVIC_INT_CTRL     ( ( volatile uint32_t * ) 0xe000ed04 )
 | 
			
		||||
#define portNVIC_PENDSVSET    0x10000000
 | 
			
		||||
#define portYIELD()                                 vPortYield()
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )    if( xSwitchRequired ) *( portNVIC_INT_CTRL ) = portNVIC_PENDSVSET
 | 
			
		||||
#define portYIELD_FROM_ISR( x )                     portEND_SWITCHING_ISR( x )
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Critical section management. */
 | 
			
		||||
 | 
			
		||||
    extern void vPortEnterCritical( void );
 | 
			
		||||
    extern void vPortExitCritical( void );
 | 
			
		||||
    extern uint32_t ulSetInterruptMaskFromISR( void );
 | 
			
		||||
    extern void vClearInterruptMaskFromISR( uint32_t ulMask );
 | 
			
		||||
extern void vPortEnterCritical( void );
 | 
			
		||||
extern void vPortExitCritical( void );
 | 
			
		||||
extern uint32_t ulSetInterruptMaskFromISR( void );
 | 
			
		||||
extern void vClearInterruptMaskFromISR( uint32_t ulMask );
 | 
			
		||||
 | 
			
		||||
    #define portDISABLE_INTERRUPTS()                  __asm volatile ( "cpsid i" )
 | 
			
		||||
    #define portENABLE_INTERRUPTS()                   __asm volatile ( "cpsie i" )
 | 
			
		||||
    #define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
    #define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
    #define portSET_INTERRUPT_MASK_FROM_ISR()         ulSetInterruptMaskFromISR()
 | 
			
		||||
    #define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    vClearInterruptMaskFromISR( x )
 | 
			
		||||
#define portDISABLE_INTERRUPTS()                  __asm volatile ( "cpsid i" )
 | 
			
		||||
#define portENABLE_INTERRUPTS()                   __asm volatile ( "cpsie i" )
 | 
			
		||||
#define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
#define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
#define portSET_INTERRUPT_MASK_FROM_ISR()         ulSetInterruptMaskFromISR()
 | 
			
		||||
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    vClearInterruptMaskFromISR( x )
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Tickless idle/low power functionality. */
 | 
			
		||||
    #ifndef portSUPPRESS_TICKS_AND_SLEEP
 | 
			
		||||
        extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime );
 | 
			
		||||
        #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )    vPortSuppressTicksAndSleep( xExpectedIdleTime )
 | 
			
		||||
    #endif
 | 
			
		||||
#ifndef portSUPPRESS_TICKS_AND_SLEEP
 | 
			
		||||
    extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime );
 | 
			
		||||
    #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )    vPortSuppressTicksAndSleep( xExpectedIdleTime )
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Task function macros as described on the FreeRTOS.org WEB site. */
 | 
			
		||||
    #define portTASK_FUNCTION_PROTO( vFunction, pvParameters )    void vFunction( void * pvParameters )
 | 
			
		||||
    #define portTASK_FUNCTION( vFunction, pvParameters )          void vFunction( void * pvParameters )
 | 
			
		||||
#define portTASK_FUNCTION_PROTO( vFunction, pvParameters )    void vFunction( void * pvParameters )
 | 
			
		||||
#define portTASK_FUNCTION( vFunction, pvParameters )          void vFunction( void * pvParameters )
 | 
			
		||||
 | 
			
		||||
    #define portNOP()
 | 
			
		||||
#define portNOP()
 | 
			
		||||
 | 
			
		||||
/* Suppress warnings that are generated by the IAR tools, but cannot be fixed in
 | 
			
		||||
 * the source code because to do so would cause other compilers to generate
 | 
			
		||||
 * warnings. */
 | 
			
		||||
    #pragma diag_suppress=Pa082
 | 
			
		||||
#pragma diag_suppress=Pa082
 | 
			
		||||
 | 
			
		||||
    #ifdef __cplusplus
 | 
			
		||||
        }
 | 
			
		||||
    #endif
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* PORTMACRO_H */
 | 
			
		||||
 | 
			
		||||
@ -47,76 +47,78 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Type definitions. */
 | 
			
		||||
    #define portCHAR          char
 | 
			
		||||
    #define portFLOAT         float
 | 
			
		||||
    #define portDOUBLE        double
 | 
			
		||||
    #define portLONG          long
 | 
			
		||||
    #define portSHORT         short
 | 
			
		||||
    #define portSTACK_TYPE    uint32_t
 | 
			
		||||
    #define portBASE_TYPE     long
 | 
			
		||||
#define portCHAR          char
 | 
			
		||||
#define portFLOAT         float
 | 
			
		||||
#define portDOUBLE        double
 | 
			
		||||
#define portLONG          long
 | 
			
		||||
#define portSHORT         short
 | 
			
		||||
#define portSTACK_TYPE    uint32_t
 | 
			
		||||
#define portBASE_TYPE     long
 | 
			
		||||
 | 
			
		||||
    typedef portSTACK_TYPE   StackType_t;
 | 
			
		||||
    typedef long             BaseType_t;
 | 
			
		||||
    typedef unsigned long    UBaseType_t;
 | 
			
		||||
typedef portSTACK_TYPE   StackType_t;
 | 
			
		||||
typedef long             BaseType_t;
 | 
			
		||||
typedef unsigned long    UBaseType_t;
 | 
			
		||||
 | 
			
		||||
    #if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
 | 
			
		||||
        typedef uint16_t     TickType_t;
 | 
			
		||||
        #define portMAX_DELAY              ( TickType_t ) 0xffff
 | 
			
		||||
    #elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
 | 
			
		||||
        typedef uint32_t     TickType_t;
 | 
			
		||||
        #define portMAX_DELAY              ( TickType_t ) 0xffffffffUL
 | 
			
		||||
#if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
 | 
			
		||||
    typedef uint16_t     TickType_t;
 | 
			
		||||
    #define portMAX_DELAY              ( TickType_t ) 0xffff
 | 
			
		||||
#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
 | 
			
		||||
    typedef uint32_t     TickType_t;
 | 
			
		||||
    #define portMAX_DELAY              ( TickType_t ) 0xffffffffUL
 | 
			
		||||
 | 
			
		||||
/* 32-bit tick type on a 32-bit architecture, so reads of the tick count do
 | 
			
		||||
 * not need to be guarded with a critical section. */
 | 
			
		||||
        #define portTICK_TYPE_IS_ATOMIC    1
 | 
			
		||||
    #else
 | 
			
		||||
        #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
 | 
			
		||||
    #endif
 | 
			
		||||
    #define portTICK_TYPE_IS_ATOMIC    1
 | 
			
		||||
#else
 | 
			
		||||
    #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Architecture specifics. */
 | 
			
		||||
    #define portSTACK_GROWTH      ( -1 )
 | 
			
		||||
    #define portTICK_PERIOD_MS    ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
 | 
			
		||||
    #define portBYTE_ALIGNMENT    8
 | 
			
		||||
#define portSTACK_GROWTH      ( -1 )
 | 
			
		||||
#define portTICK_PERIOD_MS    ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
 | 
			
		||||
#define portBYTE_ALIGNMENT    8
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Scheduler utilities. */
 | 
			
		||||
    extern void vPortYield( void );
 | 
			
		||||
    #define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
    #define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
    #define portYIELD()                                 vPortYield()
 | 
			
		||||
    #define portEND_SWITCHING_ISR( xSwitchRequired )    do { if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; } while( 0 )
 | 
			
		||||
    #define portYIELD_FROM_ISR( x )                     portEND_SWITCHING_ISR( x )
 | 
			
		||||
extern void vPortYield( void );
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portYIELD()                vPortYield()
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )                                     \
 | 
			
		||||
        do { if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; } \
 | 
			
		||||
        while( 0 )
 | 
			
		||||
#define portYIELD_FROM_ISR( x )    portEND_SWITCHING_ISR( x )
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Critical section management. */
 | 
			
		||||
    extern void vPortEnterCritical( void );
 | 
			
		||||
    extern void vPortExitCritical( void );
 | 
			
		||||
    extern uint32_t ulSetInterruptMaskFromISR( void );
 | 
			
		||||
    extern void vClearInterruptMaskFromISR( uint32_t ulMask );
 | 
			
		||||
extern void vPortEnterCritical( void );
 | 
			
		||||
extern void vPortExitCritical( void );
 | 
			
		||||
extern uint32_t ulSetInterruptMaskFromISR( void );
 | 
			
		||||
extern void vClearInterruptMaskFromISR( uint32_t ulMask );
 | 
			
		||||
 | 
			
		||||
    #define portSET_INTERRUPT_MASK_FROM_ISR()         ulSetInterruptMaskFromISR()
 | 
			
		||||
    #define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    vClearInterruptMaskFromISR( x )
 | 
			
		||||
    #define portDISABLE_INTERRUPTS()                  __disable_irq()
 | 
			
		||||
    #define portENABLE_INTERRUPTS()                   __enable_irq()
 | 
			
		||||
    #define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
    #define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
#define portSET_INTERRUPT_MASK_FROM_ISR()         ulSetInterruptMaskFromISR()
 | 
			
		||||
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    vClearInterruptMaskFromISR( x )
 | 
			
		||||
#define portDISABLE_INTERRUPTS()                  __disable_irq()
 | 
			
		||||
#define portENABLE_INTERRUPTS()                   __enable_irq()
 | 
			
		||||
#define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
#define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Tickless idle/low power functionality. */
 | 
			
		||||
    #ifndef portSUPPRESS_TICKS_AND_SLEEP
 | 
			
		||||
        extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime );
 | 
			
		||||
        #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )    vPortSuppressTicksAndSleep( xExpectedIdleTime )
 | 
			
		||||
    #endif
 | 
			
		||||
#ifndef portSUPPRESS_TICKS_AND_SLEEP
 | 
			
		||||
    extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime );
 | 
			
		||||
    #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )    vPortSuppressTicksAndSleep( xExpectedIdleTime )
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Task function macros as described on the FreeRTOS.org WEB site. */
 | 
			
		||||
    #define portTASK_FUNCTION_PROTO( vFunction, pvParameters )    void vFunction( void * pvParameters )
 | 
			
		||||
    #define portTASK_FUNCTION( vFunction, pvParameters )          void vFunction( void * pvParameters )
 | 
			
		||||
#define portTASK_FUNCTION_PROTO( vFunction, pvParameters )    void vFunction( void * pvParameters )
 | 
			
		||||
#define portTASK_FUNCTION( vFunction, pvParameters )          void vFunction( void * pvParameters )
 | 
			
		||||
 | 
			
		||||
    #define portNOP()
 | 
			
		||||
#define portNOP()
 | 
			
		||||
 | 
			
		||||
/* *INDENT-OFF* */
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user