Skip to content

Commit

Permalink
esp32/lwip: adjust task stack size according 'nano' print
Browse files Browse the repository at this point in the history
1. Adjust tcpip/main/event/timer task stack size according 'nano' print
2. If 'nano' print is disabled the task stack size reduces 512 bytes
  • Loading branch information
liuzfesp committed Nov 9, 2017
1 parent 37169f0 commit 7100550
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 13 deletions.
6 changes: 3 additions & 3 deletions components/esp32/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -281,13 +281,13 @@ config SYSTEM_EVENT_QUEUE_SIZE

config SYSTEM_EVENT_TASK_STACK_SIZE
int "Event loop task stack size"
default 4096
default 2048
help
Config system event task stack size in different application.

config MAIN_TASK_STACK_SIZE
int "Main task stack size"
default 4096
default 3584
help
Configure the "main task" stack size. This is the stack of the task
which calls app_main(). If app_main() returns then this task is deleted
Expand All @@ -310,7 +310,7 @@ config IPC_TASK_STACK_SIZE

config TIMER_TASK_STACK_SIZE
int "High-resolution timer task stack size"
default 4096
default 3584
range 2048 65536
help
Configure the stack size of esp_timer/ets_timer task. This task is used
Expand Down
16 changes: 9 additions & 7 deletions components/esp32/include/esp_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,23 @@
/* controller */
#define ESP_TASK_BT_CONTROLLER_PRIO (ESP_TASK_PRIO_MAX - 2)
#ifdef CONFIG_NEWLIB_NANO_FORMAT
#define BT_TASK_EXTRA_STACK_SIZE (0)
#define TASK_EXTRA_STACK_SIZE (0)
#else
#define BT_TASK_EXTRA_STACK_SIZE (512)
#define TASK_EXTRA_STACK_SIZE (512)
#endif
#define ESP_TASK_BT_CONTROLLER_STACK (3584 + BT_TASK_EXTRA_STACK_SIZE)

#define BT_TASK_EXTRA_STACK_SIZE TASK_EXTRA_STACK_SIZE
#define ESP_TASK_BT_CONTROLLER_STACK (3584 + TASK_EXTRA_STACK_SIZE)


/* idf task */
#define ESP_TASK_TIMER_PRIO (ESP_TASK_PRIO_MAX - 3)
#define ESP_TASK_TIMER_STACK CONFIG_TIMER_TASK_STACK_SIZE
#define ESP_TASK_TIMER_STACK (CONFIG_TIMER_TASK_STACK_SIZE + TASK_EXTRA_STACK_SIZE)
#define ESP_TASKD_EVENT_PRIO (ESP_TASK_PRIO_MAX - 5)
#define ESP_TASKD_EVENT_STACK CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE
#define ESP_TASKD_EVENT_STACK (CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE + TASK_EXTRA_STACK_SIZE)
#define ESP_TASK_TCPIP_PRIO (ESP_TASK_PRIO_MAX - 7)
#define ESP_TASK_TCPIP_STACK CONFIG_TCPIP_TASK_STACK_SIZE
#define ESP_TASK_TCPIP_STACK (CONFIG_TCPIP_TASK_STACK_SIZE + TASK_EXTRA_STACK_SIZE)
#define ESP_TASK_MAIN_PRIO (ESP_TASK_PRIO_MIN + 1)
#define ESP_TASK_MAIN_STACK CONFIG_MAIN_TASK_STACK_SIZE
#define ESP_TASK_MAIN_STACK (CONFIG_MAIN_TASK_STACK_SIZE + TASK_EXTRA_STACK_SIZE)

#endif
6 changes: 3 additions & 3 deletions components/lwip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -308,11 +308,11 @@ endmenu # UDP

config TCPIP_TASK_STACK_SIZE
int "TCP/IP Task Stack Size"
default 2560
default 2048
# for high log levels, tcpip_adapter API calls can end up
# a few calls deep and logging there can trigger a stack overflow
range 2560 65536 if LOG_DEFAULT_LEVEL < 4 || NEWLIB_NANO_FORMAT
range 3072 65536 if LOG_DEFAULT_LEVEL >= 4 && !NEWLIB_NANO_FORMAT
range 2048 65536 if LOG_DEFAULT_LEVEL < 4
range 2560 65536 if LOG_DEFAULT_LEVEL >= 4
help
Configure TCP/IP task stack size, used by LWIP to process multi-threaded TCP/IP operations.
Setting this stack too small will result in stack overflow crashes.
Expand Down

0 comments on commit 7100550

Please sign in to comment.