Merge branch 'bugfix/uart_example_stask_overflow_s3_v5.3' into 'release/v5.3'

fix(uart): increased stack size for the task in uart example (v5.3)

See merge request espressif/esp-idf!33519
This commit is contained in:
morris 2024-09-13 19:21:09 +08:00
commit d02281a90c
4 changed files with 19 additions and 12 deletions

View File

@ -38,7 +38,7 @@ menu "Echo Example Configuration"
config EXAMPLE_TASK_STACK_SIZE
int "UART echo example task stack size"
range 1024 16384
default 2048
default 3072
help
Defines stack size for UART echo example. Insufficient stack size can cause crash.

View File

@ -48,4 +48,11 @@ menu "Echo RS485 Example Configuration"
See UART documentation for more information about available pin
numbers for UART.
config ECHO_TASK_STACK_SIZE
int "UART echo RS485 example task stack size"
range 1024 16384
default 3072
help
Defines stack size for UART echo RS485 example. Insufficient stack size can cause crash.
endmenu

View File

@ -25,21 +25,21 @@
// Note: Some pins on target chip cannot be assigned for UART communication.
// Please refer to documentation for selected board and target to configure pins using Kconfig.
#define ECHO_TEST_TXD (CONFIG_ECHO_UART_TXD)
#define ECHO_TEST_RXD (CONFIG_ECHO_UART_RXD)
#define ECHO_TEST_TXD (CONFIG_ECHO_UART_TXD)
#define ECHO_TEST_RXD (CONFIG_ECHO_UART_RXD)
// RTS for RS485 Half-Duplex Mode manages DE/~RE
#define ECHO_TEST_RTS (CONFIG_ECHO_UART_RTS)
#define ECHO_TEST_RTS (CONFIG_ECHO_UART_RTS)
// CTS is not used in RS485 Half-Duplex Mode
#define ECHO_TEST_CTS (UART_PIN_NO_CHANGE)
#define ECHO_TEST_CTS (UART_PIN_NO_CHANGE)
#define BUF_SIZE (127)
#define BAUD_RATE (CONFIG_ECHO_UART_BAUD_RATE)
#define BUF_SIZE (127)
#define BAUD_RATE (CONFIG_ECHO_UART_BAUD_RATE)
// Read packet timeout
#define PACKET_READ_TICS (100 / portTICK_PERIOD_MS)
#define ECHO_TASK_STACK_SIZE (2048)
#define ECHO_TASK_STACK_SIZE (CONFIG_ECHO_TASK_STACK_SIZE)
#define ECHO_TASK_PRIO (10)
#define ECHO_UART_PORT (CONFIG_ECHO_UART_PORT_NUM)
@ -95,7 +95,7 @@ static void echo_task(void *arg)
// Allocate buffers for UART
uint8_t* data = (uint8_t*) malloc(BUF_SIZE);
ESP_LOGI(TAG, "UART start recieve loop.\r");
ESP_LOGI(TAG, "UART start receive loop.\r");
echo_send(uart_num, "Start RS485 UART test.\r\n", 24);
while (1) {
@ -112,7 +112,7 @@ static void echo_task(void *arg)
for (int i = 0; i < len; i++) {
printf("0x%.2X ", (uint8_t)data[i]);
echo_send(uart_num, (const char*)&data[i], 1);
// Add a Newline character if you get a return charater from paste (Paste tests multibyte receipt/buffer)
// Add a Newline character if you get a return character from paste (Paste tests multibyte receipt/buffer)
if (data[i] == '\r') {
echo_send(uart_num, "\n", 1);
}

View File

@ -47,7 +47,7 @@ static void uart_event_task(void *pvParameters)
bzero(dtmp, RD_BUF_SIZE);
ESP_LOGI(TAG, "uart[%d] event:", EX_UART_NUM);
switch (event.type) {
//Event of UART receving data
//Event of UART receiving data
/*We'd better handler data event fast, there would be much more data events than
other types of events. If we take too much time on data event, the queue might
be full.*/
@ -146,5 +146,5 @@ void app_main(void)
uart_pattern_queue_reset(EX_UART_NUM, 20);
//Create a task to handler UART event from ISR
xTaskCreate(uart_event_task, "uart_event_task", 2048, NULL, 12, NULL);
xTaskCreate(uart_event_task, "uart_event_task", 3072, NULL, 12, NULL);
}