mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04: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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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.
|
||||||
*/
|
*/
|
||||||
|
#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() 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…
Reference in a new issue