Merge bug fixes from Cadence

This commit is contained in:
Gaurav Aggarwal 2018-08-07 07:21:07 +00:00
parent f6cbf20019
commit 56dc0dd9b4
4 changed files with 18 additions and 9 deletions

View File

@ -112,18 +112,20 @@
/* Minimal stack size. This may need to be increased for your application */ /* Minimal stack size. This may need to be increased for your application */
/* NOTE: The FreeRTOS demos may not work reliably with stack size < 4KB. */ /* NOTE: The FreeRTOS demos may not work reliably with stack size < 4KB. */
/* The Xtensa-specific examples should be fine with XT_STACK_MIN_SIZE. */ /* The Xtensa-specific examples should be fine with XT_STACK_MIN_SIZE. */
/* NOTE: the size is defined in terms of StackType_t units not bytes. */
#if !(defined XT_STACK_MIN_SIZE) #if !(defined XT_STACK_MIN_SIZE)
#error XT_STACK_MIN_SIZE not defined, did you include xtensa_config.h ? #error XT_STACK_MIN_SIZE not defined, did you include xtensa_config.h ?
#endif #endif
#ifdef SMALL_TEST #ifdef SMALL_TEST
#define configMINIMAL_STACK_SIZE (XT_STACK_MIN_SIZE) #define configMINIMAL_STACK_SIZE (XT_STACK_MIN_SIZE / sizeof(StackType_t))
#else #else
#define configMINIMAL_STACK_SIZE (XT_STACK_MIN_SIZE > 4096 ? XT_STACK_MIN_SIZE : 4096) #define configMINIMAL_STACK_SIZE (XT_STACK_MIN_SIZE > 1024 ? XT_STACK_MIN_SIZE : 1024)
#endif #endif
/* The Xtensa port uses a separate interrupt stack. Adjust the stack size */ /* The Xtensa port uses a separate interrupt stack. Adjust the stack size */
/* to suit the needs of your specific application. */ /* to suit the needs of your specific application. */
/* NOTE: the size is defined in bytes. */
#ifndef configISR_STACK_SIZE #ifndef configISR_STACK_SIZE
#define configISR_STACK_SIZE 2048 #define configISR_STACK_SIZE 2048
#endif #endif

View File

@ -105,6 +105,8 @@ extern void _frxt_tick_timer_init(void);
/* Defined in xtensa_context.S */ /* Defined in xtensa_context.S */
extern void _xt_coproc_init(void); extern void _xt_coproc_init(void);
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* We require the address of the pxCurrentTCB variable, but don't want to know /* We require the address of the pxCurrentTCB variable, but don't want to know
@ -223,7 +225,7 @@ BaseType_t xPortStartScheduler( void )
BaseType_t xPortSysTickHandler( void ) BaseType_t xPortSysTickHandler( void )
{ {
BaseType_t ret; BaseType_t ret;
unsigned interruptMask; uint32_t interruptMask;
portbenchmarkIntLatency(); portbenchmarkIntLatency();
@ -258,4 +260,4 @@ void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMOR
#endif #endif
} }
#endif #endif
/*-----------------------------------------------------------*/

View File

@ -99,7 +99,7 @@ extern "C" {
#define portDOUBLE double #define portDOUBLE double
#define portLONG int32_t #define portLONG int32_t
#define portSHORT int16_t #define portSHORT int16_t
#define portSTACK_TYPE uint8_t #define portSTACK_TYPE uint32_t
#define portBASE_TYPE int #define portBASE_TYPE int
typedef portSTACK_TYPE StackType_t; typedef portSTACK_TYPE StackType_t;
@ -138,6 +138,7 @@ static inline unsigned portENTER_CRITICAL_NESTED() { unsigned state = XTOS_SET_I
// These FreeRTOS versions are similar to the nested versions above // These FreeRTOS versions are similar to the nested versions above
#define portSET_INTERRUPT_MASK_FROM_ISR() portENTER_CRITICAL_NESTED() #define portSET_INTERRUPT_MASK_FROM_ISR() portENTER_CRITICAL_NESTED()
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(state) portEXIT_CRITICAL_NESTED(state) #define portCLEAR_INTERRUPT_MASK_FROM_ISR(state) portEXIT_CRITICAL_NESTED(state)
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Architecture specifics. */ /* Architecture specifics. */
@ -154,7 +155,11 @@ static inline unsigned portENTER_CRITICAL_NESTED() { unsigned state = XTOS_SET_I
void vPortYield( void ); void vPortYield( void );
void _frxt_setup_switch( void ); void _frxt_setup_switch( void );
#define portYIELD() vPortYield() #define portYIELD() vPortYield()
#define portYIELD_FROM_ISR( x ) if( ( x ) != 0 ) { _frxt_setup_switch(); } #define portYIELD_FROM_ISR( xHigherPriorityTaskWoken ) \
if ( ( xHigherPriorityTaskWoken ) != 0 ) { \
_frxt_setup_switch(); \
}
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Task function macros as described on the FreeRTOS.org WEB site. */ /* Task function macros as described on the FreeRTOS.org WEB site. */

View File

@ -226,8 +226,8 @@ Xtensa Port Version.
*******************************************************************************/ *******************************************************************************/
#define XTENSA_PORT_VERSION 1.6 #define XTENSA_PORT_VERSION 1.7
#define XTENSA_PORT_VERSION_STRING "1.6" #define XTENSA_PORT_VERSION_STRING "1.7"
#endif /* XTENSA_RTOS_H */ #endif /* XTENSA_RTOS_H */