Skip to content

Commit

Permalink
ethernet: enlarge ethernet task stack size
Browse files Browse the repository at this point in the history
1. In original driver, the stack size for emac driver task "emacT" is only 2048 Bytes, which also can not be changed by user.
2. Each time when invoking "emac_start" function, it will reset emac registers, the driver should reconfig some important registers again.

Closes #3025
  • Loading branch information
suda-morris committed Feb 27, 2019
1 parent 57118e2 commit ed1771c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 1 deletion.
7 changes: 7 additions & 0 deletions components/ethernet/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,11 @@ config EMAC_TASK_PRIORITY
help
Ethernet MAC task priority.

config EMAC_TASK_STACK_SIZE
int "Stack Size of EMAC Task"
default 3072
range 2000 8000
help
Stack Size of Ethernet MAC task.

endmenu
1 change: 1 addition & 0 deletions components/ethernet/emac_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ struct emac_close_cmd {
#define DMA_RX_BUF_NUM CONFIG_DMA_RX_BUF_NUM
#define DMA_TX_BUF_NUM CONFIG_DMA_TX_BUF_NUM
#define EMAC_TASK_PRIORITY CONFIG_EMAC_TASK_PRIORITY
#define EMAC_TASK_STACK_SIZE CONFIG_EMAC_TASK_STACK_SIZE

#define DMA_RX_BUF_SIZE 1600
#define DMA_TX_BUF_SIZE 1600
Expand Down
4 changes: 3 additions & 1 deletion components/ethernet/emac_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,7 @@ static void emac_start(void *param)
emac_enable_clk(true);

emac_reset();
emac_dma_init();

emac_set_macaddr_reg();

Expand Down Expand Up @@ -1101,7 +1102,8 @@ esp_err_t esp_eth_init_internal(eth_config_t *config)
emac_rx_xMutex = xSemaphoreCreateRecursiveMutex();
emac_tx_xMutex = xSemaphoreCreateRecursiveMutex();
emac_xqueue = xQueueCreate(EMAC_EVT_QNUM, sizeof(emac_event_t));
xTaskCreate(emac_task, "emacT", 2048, NULL, EMAC_TASK_PRIORITY, &emac_task_hdl);
xTaskCreate(emac_task, "emacT", EMAC_TASK_STACK_SIZE, NULL,
EMAC_TASK_PRIORITY, &emac_task_hdl);

emac_enable_clk(false);
esp_intr_alloc(ETS_ETH_MAC_INTR_SOURCE, 0, emac_process_intr, NULL, NULL);
Expand Down

0 comments on commit ed1771c

Please sign in to comment.