|
|
|
@ -26,12 +26,15 @@
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef PORTMACRO_H
|
|
|
|
|
#define PORTMACRO_H
|
|
|
|
|
|
|
|
|
|
/* *INDENT-OFF* */
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
/* *INDENT-ON* */
|
|
|
|
|
|
|
|
|
|
/*-----------------------------------------------------------
|
|
|
|
|
* Port specific definitions.
|
|
|
|
@ -118,13 +121,45 @@ extern void vClearInterruptMaskFromISR( uint32_t ulMask );
|
|
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
* the source code because to do so would cause other compilers to generate
|
|
|
|
|
* warnings. */
|
|
|
|
|
#pragma diag_suppress=Pa082
|
|
|
|
|
|
|
|
|
|
/* *INDENT-OFF* */
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
/* *INDENT-ON* */
|
|
|
|
|
|
|
|
|
|
#endif /* PORTMACRO_H */
|
|
|
|
|