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;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
@ -1118,6 +1118,12 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
 | 
				
			|||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
					            #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #if ( configENABLE_MPU == 1 )
 | 
				
			||||||
 | 
					                case portSVC_YIELD:
 | 
				
			||||||
 | 
					                    vPortYield();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            #endif /* configENABLE_MPU == 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            /* Incorrect SVC call. */
 | 
					            /* Incorrect SVC call. */
 | 
				
			||||||
            configASSERT( pdFALSE );
 | 
					            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          4   /* System calls with upto 4 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
					#define portSVC_SYSTEM_CALL_ENTER_1        5   /* System calls with 5 parameters. */
 | 
				
			||||||
#define portSVC_SYSTEM_CALL_EXIT           6
 | 
					#define portSVC_SYSTEM_CALL_EXIT           6
 | 
				
			||||||
 | 
					#define portSVC_YIELD                      7
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Scheduler utilities.
 | 
					 * @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_INT_CTRL_REG     ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
 | 
				
			||||||
#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
					#define portNVIC_PENDSVSET_BIT    ( 1UL << 28UL )
 | 
				
			||||||
#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
					#define portEND_SWITCHING_ISR( xSwitchRequired )            \
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user