|
|
@@ -183,16 +183,37 @@ int xt_clock_freq(void) __attribute__((deprecated));
|
|
|
#define configMAX_PRIORITIES ( 25 )
|
|
|
#endif
|
|
|
|
|
|
-#if defined(CONFIG_APPTRACE_ENABLE)
|
|
|
-/* apptrace module requires at least 2KB of stack per task */
|
|
|
-#define configMINIMAL_STACK_SIZE 2048
|
|
|
-#elif defined(CONFIG_COMPILER_OPTIMIZATION_NONE)
|
|
|
+/* Various things that impact minimum stack sizes */
|
|
|
+
|
|
|
+/* Higher stack checker modes cause overhead on each function call */
|
|
|
+#if CONFIG_STACK_CHECK_ALL || CONFIG_STACK_CHECK_STRONG
|
|
|
+#define configSTACK_OVERHEAD_CHECKER 256
|
|
|
+#else
|
|
|
+#define configSTACK_OVERHEAD_CHECKER 0
|
|
|
+#endif
|
|
|
+
|
|
|
/* with optimizations disabled, scheduler uses additional stack */
|
|
|
-#define configMINIMAL_STACK_SIZE 1024
|
|
|
+#if CONFIG_COMPILER_OPTIMIZATION_NONE
|
|
|
+#define configSTACK_OVERHEAD_OPTIMIZATION 320
|
|
|
#else
|
|
|
-#define configMINIMAL_STACK_SIZE 768
|
|
|
+#define configSTACK_OVERHEAD_OPTIMIZATION 0
|
|
|
#endif
|
|
|
|
|
|
+/* apptrace mdule increases minimum stack usage */
|
|
|
+#if CONFIG_APPTRACE_ENABLE
|
|
|
+#define configSTACK_OVERHEAD_APPTRACE 1280
|
|
|
+#else
|
|
|
+#define configSTACK_OVERHEAD_APPTRACE 0
|
|
|
+#endif
|
|
|
+
|
|
|
+#define configSTACK_OVERHEAD_TOTAL ( \
|
|
|
+ configSTACK_OVERHEAD_CHECKER + \
|
|
|
+ configSTACK_OVERHEAD_OPTIMIZATION + \
|
|
|
+ configSTACK_OVERHEAD_APPTRACE \
|
|
|
+ )
|
|
|
+
|
|
|
+#define configMINIMAL_STACK_SIZE (768 + configSTACK_OVERHEAD_TOTAL)
|
|
|
+
|
|
|
#ifndef configIDLE_TASK_STACK_SIZE
|
|
|
#define configIDLE_TASK_STACK_SIZE CONFIG_FREERTOS_IDLE_TASK_STACKSIZE
|
|
|
#endif
|