forked from epagris/FreeRTOS-Kernel
		
	Revert the formatting changes on MikroC ports. (#882)
Co-authored-by: Rahul Kar <118818625+kar-rahul-aws@users.noreply.github.com> Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									a8a17dc4b5
								
							
						
					
					
						commit
						2dfc5142f4
					
				@ -345,22 +345,22 @@ BaseType_t xPortStartScheduler( void )
 | 
			
		||||
        if( ulImplementedPrioBits == 8 )
 | 
			
		||||
        {
 | 
			
		||||
            /* When the hardware implements 8 priority bits, there is no way for
 | 
			
		||||
             * the software to configure PRIGROUP to not have sub-priorities. As
 | 
			
		||||
             * a result, the least significant bit is always used for sub-priority
 | 
			
		||||
             * and there are 128 preemption priorities and 2 sub-priorities.
 | 
			
		||||
             *
 | 
			
		||||
             * This may cause some confusion in some cases - for example, if
 | 
			
		||||
             * configMAX_SYSCALL_INTERRUPT_PRIORITY is set to 5, both 5 and 4
 | 
			
		||||
             * priority interrupts will be masked in Critical Sections as those
 | 
			
		||||
             * are at the same preemption priority. This may appear confusing as
 | 
			
		||||
             * 4 is higher (numerically lower) priority than
 | 
			
		||||
             * configMAX_SYSCALL_INTERRUPT_PRIORITY and therefore, should not
 | 
			
		||||
             * have been masked. Instead, if we set configMAX_SYSCALL_INTERRUPT_PRIORITY
 | 
			
		||||
             * to 4, this confusion does not happen and the behaviour remains the same.
 | 
			
		||||
             *
 | 
			
		||||
             * The following assert ensures that the sub-priority bit in the
 | 
			
		||||
             * configMAX_SYSCALL_INTERRUPT_PRIORITY is clear to avoid the above mentioned
 | 
			
		||||
             * confusion. */
 | 
			
		||||
            * the software to configure PRIGROUP to not have sub-priorities. As
 | 
			
		||||
            * a result, the least significant bit is always used for sub-priority
 | 
			
		||||
            * and there are 128 preemption priorities and 2 sub-priorities.
 | 
			
		||||
            *
 | 
			
		||||
            * This may cause some confusion in some cases - for example, if
 | 
			
		||||
            * configMAX_SYSCALL_INTERRUPT_PRIORITY is set to 5, both 5 and 4
 | 
			
		||||
            * priority interrupts will be masked in Critical Sections as those
 | 
			
		||||
            * are at the same preemption priority. This may appear confusing as
 | 
			
		||||
            * 4 is higher (numerically lower) priority than
 | 
			
		||||
            * configMAX_SYSCALL_INTERRUPT_PRIORITY and therefore, should not
 | 
			
		||||
            * have been masked. Instead, if we set configMAX_SYSCALL_INTERRUPT_PRIORITY
 | 
			
		||||
            * to 4, this confusion does not happen and the behaviour remains the same.
 | 
			
		||||
            *
 | 
			
		||||
            * The following assert ensures that the sub-priority bit in the
 | 
			
		||||
            * configMAX_SYSCALL_INTERRUPT_PRIORITY is clear to avoid the above mentioned
 | 
			
		||||
            * confusion. */
 | 
			
		||||
            configASSERT( ( configMAX_SYSCALL_INTERRUPT_PRIORITY & 0x1U ) == 0U );
 | 
			
		||||
            ulMaxPRIGROUPValue = 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef PORTMACRO_H
 | 
			
		||||
#define PORTMACRO_H
 | 
			
		||||
    #define PORTMACRO_H
 | 
			
		||||
 | 
			
		||||
/* *INDENT-OFF* */
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
@ -48,53 +48,53 @@
 | 
			
		||||
/* The compiler needs to be told functions that are only referenced by pointer
 | 
			
		||||
 * are to be included in the build.  NOTE:  Omitting these lines will result in a
 | 
			
		||||
 * run-time crash, not a linker error! */
 | 
			
		||||
#pragma funcall vTaskStartScheduler prvIdleTask
 | 
			
		||||
#pragma funcall xTimerCreateTimerTask prvTimerTask
 | 
			
		||||
    #pragma funcall vTaskStartScheduler prvIdleTask
 | 
			
		||||
    #pragma funcall xTimerCreateTimerTask prvTimerTask
 | 
			
		||||
 | 
			
		||||
/* 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. */
 | 
			
		||||
#define portYIELD()                                     \
 | 
			
		||||
    #define portYIELD()                                 \
 | 
			
		||||
    {                                                   \
 | 
			
		||||
        /* Set a PendSV to request a context switch. */ \
 | 
			
		||||
        portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; \
 | 
			
		||||
                                                        \
 | 
			
		||||
        /* Barriers are normally not required but do ensure the code is completely \
 | 
			
		||||
         * within the specified behaviour for the architecture. */ \
 | 
			
		||||
        __asm { dsb };                                             \
 | 
			
		||||
        __asm { isb };                                             \
 | 
			
		||||
        __asm{ dsb };                                              \
 | 
			
		||||
        __asm{ isb };                                              \
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
@ -116,91 +116,87 @@ typedef unsigned long    UBaseType_t;
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Critical section management. */
 | 
			
		||||
extern void vPortEnterCritical( void );
 | 
			
		||||
extern void vPortExitCritical( void );
 | 
			
		||||
#define portDISABLE_INTERRUPTS()                  CPU_REG_SET( CPU_BASEPRI, configMAX_SYSCALL_INTERRUPT_PRIORITY ); __asm { dsb }; __asm { isb }
 | 
			
		||||
#define portENABLE_INTERRUPTS()                   CPU_REG_SET( CPU_BASEPRI, 0 );
 | 
			
		||||
#define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
#define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
#define portSET_INTERRUPT_MASK_FROM_ISR()         ulPortRaiseBASEPRI()
 | 
			
		||||
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    CPU_REG_SET( CPU_BASEPRI, x );     /* Barrier instructions not used as this is only used to lower the basepri. */
 | 
			
		||||
    extern void vPortEnterCritical( void );
 | 
			
		||||
    extern void vPortExitCritical( void );
 | 
			
		||||
    #define portDISABLE_INTERRUPTS()                  CPU_REG_SET( CPU_BASEPRI, configMAX_SYSCALL_INTERRUPT_PRIORITY ); __asm{ dsb }; __asm{ isb }
 | 
			
		||||
    #define portENABLE_INTERRUPTS()                   CPU_REG_SET( CPU_BASEPRI, 0 );
 | 
			
		||||
    #define portENTER_CRITICAL()                      vPortEnterCritical()
 | 
			
		||||
    #define portEXIT_CRITICAL()                       vPortExitCritical()
 | 
			
		||||
    #define portSET_INTERRUPT_MASK_FROM_ISR()         ulPortRaiseBASEPRI()
 | 
			
		||||
    #define portCLEAR_INTERRUPT_MASK_FROM_ISR( x )    CPU_REG_SET( CPU_BASEPRI, x ); /* Barrier instructions not used as this is only used to lower the basepri. */
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Task function macros as described on the FreeRTOS.org WEB site.  These are
 | 
			
		||||
 * not necessary for to use this port.  They are defined so the common demo files
 | 
			
		||||
 * (which build with all the ports) will build. */
 | 
			
		||||
#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 )
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* 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
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Architecture specific optimisations. */
 | 
			
		||||
#ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
 | 
			
		||||
    #define configUSE_PORT_OPTIMISED_TASK_SELECTION    1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1
 | 
			
		||||
 | 
			
		||||
/* Generic helper function. */
 | 
			
		||||
    __attribute__( ( always_inline ) ) static inline uint8_t ucPortCountLeadingZeros( uint32_t ulBitmap )
 | 
			
		||||
    {
 | 
			
		||||
        uint8_t ucReturn;
 | 
			
		||||
 | 
			
		||||
        __asm volatile ( "clz %0, %1" : "=r" ( ucReturn ) : "r" ( ulBitmap ) );
 | 
			
		||||
 | 
			
		||||
        return ucReturn;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/* Check the configuration. */
 | 
			
		||||
    #if ( configMAX_PRIORITIES > 32 )
 | 
			
		||||
        #error configUSE_PORT_OPTIMISED_TASK_SELECTION can only be set to 1 when configMAX_PRIORITIES is less than or equal to 32.  It is very rare that a system requires more than 10 to 15 difference priorities as tasks that share a priority will time slice.
 | 
			
		||||
    #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
 | 
			
		||||
        #define configUSE_PORT_OPTIMISED_TASK_SELECTION    1
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1
 | 
			
		||||
 | 
			
		||||
/* Generic helper function. */
 | 
			
		||||
        __attribute__( ( always_inline ) ) static inline uint8_t ucPortCountLeadingZeros( uint32_t ulBitmap )
 | 
			
		||||
        {
 | 
			
		||||
            uint8_t ucReturn;
 | 
			
		||||
 | 
			
		||||
            __asm volatile ( "clz %0, %1" : "=r" ( ucReturn ) : "r" ( ulBitmap ) );
 | 
			
		||||
 | 
			
		||||
            return ucReturn;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
/* Check the configuration. */
 | 
			
		||||
        #if ( configMAX_PRIORITIES > 32 )
 | 
			
		||||
            #error configUSE_PORT_OPTIMISED_TASK_SELECTION can only be set to 1 when configMAX_PRIORITIES is less than or equal to 32.  It is very rare that a system requires more than 10 to 15 difference priorities as tasks that share a priority will time slice.
 | 
			
		||||
        #endif
 | 
			
		||||
 | 
			
		||||
/* Store/clear the ready priorities in a bit map. */
 | 
			
		||||
    #define portRECORD_READY_PRIORITY( uxPriority, uxReadyPriorities )    ( uxReadyPriorities ) |= ( 1UL << ( uxPriority ) )
 | 
			
		||||
    #define portRESET_READY_PRIORITY( uxPriority, uxReadyPriorities )     ( uxReadyPriorities ) &= ~( 1UL << ( uxPriority ) )
 | 
			
		||||
        #define portRECORD_READY_PRIORITY( uxPriority, uxReadyPriorities )    ( uxReadyPriorities ) |= ( 1UL << ( uxPriority ) )
 | 
			
		||||
        #define portRESET_READY_PRIORITY( uxPriority, uxReadyPriorities )     ( uxReadyPriorities ) &= ~( 1UL << ( uxPriority ) )
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
    #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities )    uxTopPriority = ( 31UL - ( uint32_t ) ucPortCountLeadingZeros( ( uxReadyPriorities ) ) )
 | 
			
		||||
        #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities )    uxTopPriority = ( 31UL - ( uint32_t ) ucPortCountLeadingZeros( ( uxReadyPriorities ) ) )
 | 
			
		||||
 | 
			
		||||
#endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */
 | 
			
		||||
    #endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
#ifdef configASSERT
 | 
			
		||||
    void vPortValidateInterruptPriority( void );
 | 
			
		||||
    #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()    vPortValidateInterruptPriority()
 | 
			
		||||
#endif
 | 
			
		||||
    #ifdef configASSERT
 | 
			
		||||
        void vPortValidateInterruptPriority( void );
 | 
			
		||||
        #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()    vPortValidateInterruptPriority()
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
/* portNOP() is not required by this port. */
 | 
			
		||||
#define portNOP()
 | 
			
		||||
    #define portNOP()
 | 
			
		||||
 | 
			
		||||
BaseType_t xPortIsInsideInterrupt( void );
 | 
			
		||||
    BaseType_t xPortIsInsideInterrupt( void );
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
static inline uint32_t ulPortRaiseBASEPRI( void )
 | 
			
		||||
{
 | 
			
		||||
    uint32_t ulOriginalBASEPRI;
 | 
			
		||||
    static inline uint32_t ulPortRaiseBASEPRI( void )
 | 
			
		||||
    {
 | 
			
		||||
        uint32_t ulOriginalBASEPRI;
 | 
			
		||||
 | 
			
		||||
    ulOriginalBASEPRI = CPU_REG_GET( CPU_BASEPRI );
 | 
			
		||||
    CPU_REG_SET( CPU_BASEPRI, configMAX_SYSCALL_INTERRUPT_PRIORITY );
 | 
			
		||||
    __asm {
 | 
			
		||||
        dsb
 | 
			
		||||
    };
 | 
			
		||||
    __asm {
 | 
			
		||||
        isb
 | 
			
		||||
    };
 | 
			
		||||
    return ulOriginalBASEPRI;
 | 
			
		||||
}
 | 
			
		||||
        ulOriginalBASEPRI = CPU_REG_GET( CPU_BASEPRI );
 | 
			
		||||
        CPU_REG_SET( CPU_BASEPRI, configMAX_SYSCALL_INTERRUPT_PRIORITY );
 | 
			
		||||
        __asm{ dsb };
 | 
			
		||||
        __asm{ isb };
 | 
			
		||||
        return ulOriginalBASEPRI;
 | 
			
		||||
    }
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* *INDENT-OFF* */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user