]> git.sur5r.net Git - freertos/commitdiff
Merge bug fixes from Cadence
authorgaurav-aws <gaurav-aws@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 7 Aug 2018 07:21:07 +0000 (07:21 +0000)
committergaurav-aws <gaurav-aws@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 7 Aug 2018 07:21:07 +0000 (07:21 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2559 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC/FreeRTOSConfig.h
FreeRTOS/Source/portable/ThirdParty/XCC/Xtensa/port.c
FreeRTOS/Source/portable/ThirdParty/XCC/Xtensa/portmacro.h
FreeRTOS/Source/portable/ThirdParty/XCC/Xtensa/xtensa_rtos.h

index 75a8fa7c82ba28484a998abe3abe1bd4aaebde74..397c404a422fef05470206a398be0d809fa08ab2 100644 (file)
 /* Minimal stack size. This may need to be increased for your application */\r
 /* NOTE: The FreeRTOS demos may not work reliably with stack size < 4KB.  */\r
 /* The Xtensa-specific examples should be fine with XT_STACK_MIN_SIZE.    */\r
+/* NOTE: the size is defined in terms of StackType_t units not bytes.     */\r
 #if !(defined XT_STACK_MIN_SIZE)\r
 #error XT_STACK_MIN_SIZE not defined, did you include xtensa_config.h ?\r
 #endif\r
 \r
 #ifdef SMALL_TEST\r
-#define configMINIMAL_STACK_SIZE               (XT_STACK_MIN_SIZE)\r
+#define configMINIMAL_STACK_SIZE               (XT_STACK_MIN_SIZE / sizeof(StackType_t))\r
 #else\r
-#define configMINIMAL_STACK_SIZE               (XT_STACK_MIN_SIZE > 4096 ? XT_STACK_MIN_SIZE : 4096)\r
+#define configMINIMAL_STACK_SIZE               (XT_STACK_MIN_SIZE > 1024 ? XT_STACK_MIN_SIZE : 1024)\r
 #endif\r
 \r
 /* The Xtensa port uses a separate interrupt stack. Adjust the stack size */\r
 /* to suit the needs of your specific application.                        */\r
+/* NOTE: the size is defined in bytes.                                    */\r
 #ifndef configISR_STACK_SIZE\r
 #define configISR_STACK_SIZE                   2048\r
 #endif\r
index 6bda80423a3cd188c3c7a7dcd035aed8bf1ae8e0..ec09bf72c85e23f7eee4ff377e7bee061224a187 100644 (file)
@@ -105,6 +105,8 @@ extern void _frxt_tick_timer_init(void);
 \r
 /* Defined in xtensa_context.S */\r
 extern void _xt_coproc_init(void);\r
+\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* We require the address of the pxCurrentTCB variable, but don't want to know\r
@@ -120,7 +122,7 @@ unsigned port_interruptNesting = 0;  // Interrupt nesting level
 // User exception dispatcher when exiting\r
 void _xt_user_exit(void);\r
 \r
-/*\r
+/* \r
  * Stack initialization\r
  */\r
 #if portUSING_MPU_WRAPPERS\r
@@ -223,7 +225,7 @@ BaseType_t xPortStartScheduler( void )
 BaseType_t xPortSysTickHandler( void )\r
 {\r
        BaseType_t ret;\r
-       unsigned interruptMask;\r
+       uint32_t interruptMask;\r
 \r
        portbenchmarkIntLatency();\r
 \r
@@ -258,4 +260,4 @@ void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMOR
        #endif\r
 }\r
 #endif\r
-/*-----------------------------------------------------------*/\r
+\r
index 82e783dc47f72e76aeb3806cd2424b06d1438790..31832c2e0d9fb66fb59783224beab6f7951b946c 100644 (file)
@@ -99,7 +99,7 @@ extern "C" {
 #define portDOUBLE             double\r
 #define portLONG               int32_t\r
 #define portSHORT              int16_t\r
-#define portSTACK_TYPE uint8_t\r
+#define portSTACK_TYPE uint32_t\r
 #define portBASE_TYPE  int\r
 \r
 typedef portSTACK_TYPE                 StackType_t;\r
@@ -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\r
 #define portSET_INTERRUPT_MASK_FROM_ISR()            portENTER_CRITICAL_NESTED()\r
 #define portCLEAR_INTERRUPT_MASK_FROM_ISR(state)     portEXIT_CRITICAL_NESTED(state)\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* Architecture specifics. */\r
@@ -154,7 +155,11 @@ static inline unsigned portENTER_CRITICAL_NESTED() { unsigned state = XTOS_SET_I
 void vPortYield( void );\r
 void _frxt_setup_switch( void );\r
 #define portYIELD()       vPortYield()\r
-#define portYIELD_FROM_ISR( x )                if( ( x ) != 0 ) { _frxt_setup_switch(); }\r
+#define portYIELD_FROM_ISR( xHigherPriorityTaskWoken ) \\r
+       if ( ( xHigherPriorityTaskWoken ) != 0 ) {      \\r
+               _frxt_setup_switch();                   \\r
+       }\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* Task function macros as described on the FreeRTOS.org WEB site. */\r
index 2cb8b6b47991090a499341528a9def12bafd4f50..f47357fa5f4c17069e095a7c845d435813ba80ce 100644 (file)
@@ -226,8 +226,8 @@ Xtensa Port Version.
 \r
 *******************************************************************************/\r
 \r
-#define XTENSA_PORT_VERSION             1.6\r
-#define XTENSA_PORT_VERSION_STRING      "1.6"\r
+#define XTENSA_PORT_VERSION             1.7\r
+#define XTENSA_PORT_VERSION_STRING      "1.7"\r
 \r
 #endif /* XTENSA_RTOS_H */\r
 \r