|
|
|
@ -77,6 +77,12 @@ typedef unsigned long UBaseType_t;
|
|
|
|
|
#define portBYTE_ALIGNMENT 8
|
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
/* Compiler directives. */
|
|
|
|
|
#define portWEAK_SYMBOL __attribute__( ( weak ) )
|
|
|
|
|
|
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Scheduler utilities. */
|
|
|
|
|
#define portYIELD() \
|
|
|
|
|
{ \
|
|
|
|
@ -157,6 +163,34 @@ not necessary for to use this port. They are defined so the common demo files
|
|
|
|
|
/* portNOP() is not required by this port. */
|
|
|
|
|
#define portNOP()
|
|
|
|
|
|
|
|
|
|
#define portINLINE __inline
|
|
|
|
|
|
|
|
|
|
#ifndef portFORCE_INLINE
|
|
|
|
|
#define portFORCE_INLINE inline __attribute__(( always_inline))
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
portFORCE_INLINE static BaseType_t xPortIsInsideInterrupt( void )
|
|
|
|
|
{
|
|
|
|
|
uint32_t ulCurrentInterrupt;
|
|
|
|
|
BaseType_t xReturn;
|
|
|
|
|
|
|
|
|
|
/* Obtain the number of the currently executing interrupt. */
|
|
|
|
|
__asm volatile( "mrs %0, ipsr" : "=r"( ulCurrentInterrupt ) :: "memory" );
|
|
|
|
|
|
|
|
|
|
if( ulCurrentInterrupt == 0 )
|
|
|
|
|
{
|
|
|
|
|
xReturn = pdFALSE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
xReturn = pdTRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return xReturn;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
/* Suppress warnings that are generated by the IAR tools, but cannot be fixed in
|
|
|
|
|