mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-04 11:09:01 +01:00 
			
		
		
		
	Make taskYIELD available to unprivileged tasks (#817)
Make taskYIELD available to unprivileged tasks on ARMv8-M ports.
This commit is contained in:
		
							parent
							
								
									d442d7908a
								
							
						
					
					
						commit
						3d575b58a4
					
				@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
			
		||||
 | 
			
		||||
            #if ( configENABLE_MPU == 1 )
 | 
			
		||||
                case portSVC_YIELD:
 | 
			
		||||
                    vPortYield();
 | 
			
		||||
                    break;
 | 
			
		||||
            #endif /* configENABLE_MPU == 1 */
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            /* Incorrect SVC call. */
 | 
			
		||||
            configASSERT( pdFALSE );
 | 
			
		||||
 | 
			
		||||
@ -329,12 +329,20 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER          4   /* System calls with upto 4 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
			
		||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
			
		||||
#define portSVC_YIELD                      7
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Scheduler utilities.
 | 
			
		||||
 */
 | 
			
		||||
#define portYIELD()    vPortYield()
 | 
			
		||||
#if ( configENABLE_MPU == 1 )
 | 
			
		||||
    #define portYIELD()               __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#else
 | 
			
		||||
    #define portYIELD()               vPortYield()
 | 
			
		||||
    #define portYIELD_WITHIN_API()    vPortYield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define portNVIC_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
			
		||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
			
		||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user