Skip to content

Commit

Permalink
Merge branch 'bugfix/fix_stack_rs485_echo_example' into 'master'
Browse files Browse the repository at this point in the history
fix(uart/example): Fixed the stack size allocation in uart echo examples

Closes IDFGH-13483

See merge request espressif/esp-idf!33079
  • Loading branch information
alisitsyn committed Aug 27, 2024
2 parents e220f1f + 5145174 commit bd95e69
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
2 changes: 1 addition & 1 deletion examples/peripherals/uart/uart_echo/main/Kconfig.projbuild
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
18 changes: 9 additions & 9 deletions examples/peripherals/uart/uart_echo_rs485/main/rs485_example.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -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) {
Expand All @@ -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);
}
Expand Down

0 comments on commit bd95e69

Please sign in to comment.