RTOS Basics with TWAI and UART
Posted: Fri Jan 05, 2024 8:34 pm
I am working on a project which involves receiving TWAI messages which are updated every 1ms and send them through UART.
As I do not have access to TWAI Transmitter at the moment, I am simulating incoming messages with a GPTimer running at 1ms and updating a global shared twai_message_t object.
Somehow it is working, but I am not getting my data in the correct order and maybe even missing some data. I wanted some help in understanding what is going on with my RTOS Tasks.
Here is the code:
Here is the output:
After around 5 seconds, the watchdog timer is also triggered.
If someone can please explain what is happening, it will be really helpful.
Thank you!
As I do not have access to TWAI Transmitter at the moment, I am simulating incoming messages with a GPTimer running at 1ms and updating a global shared twai_message_t object.
Somehow it is working, but I am not getting my data in the correct order and maybe even missing some data. I wanted some help in understanding what is going on with my RTOS Tasks.
Here is the code:
Code: Select all
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <freertos/semphr.h>
#include <freertos/queue.h>
#include "freertos/event_groups.h"
#include <driver/uart.h>
#include "driver/gptimer.h"
#include "driver/twai.h"
#include "esp_log.h"
/*Configuration Settings*/
enum { BUF_LEN = 20 };
/*Pins*/
#define TXD_PIN (GPIO_NUM_17)
#define RXD_PIN (GPIO_NUM_16)
/*Globals*/
#define UART_NUM UART_NUM_1
#define BUF_SIZE (1024)
#define TWAI_RX_TASK_PRIORITY (configMAX_PRIORITIES - 1)
#define UART_TX_TASK_PRIORITY (configMAX_PRIORITIES - 2)
static const char *Timer_TAG = "Timer";
static const char *TX_TASK_TAG = "TX_TASK";
static TaskHandle_t processing_task = NULL;
static SemaphoreHandle_t sem_done_reading = NULL;
static portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
static portMUX_TYPE uartlock = portMUX_INITIALIZER_UNLOCKED;
gptimer_handle_t gptimer = NULL;
QueueHandle_t uart_tx_queue[2]; // Two buffers for UART transmit
volatile int active_buffer = 0;
static volatile uint8_t buf_overrun = 0; // Double buffer overrun flag
TaskHandle_t uart_tx_task_handle;
twai_message_t rx_message = { .identifier = 1,
.data_length_code = 3,
.data = {0, 0, 0, 0, 0, 0, 0, 0}
};
// Message struct to wrap strings for queue
typedef struct CAN_Serial_Frame {
uint8_t sof;
uint32_t timestamp;
uint8_t dlc;
uint32_t msg_id;
uint8_t payload[8];
uint8_t eof;
}CAN_Serial_Frame;
CAN_Serial_Frame CSF = {0xAA,100,8,1,{0},0xBB};
/*Timer ISR*/
uint8_t update_flag = 1;
void IRAM_ATTR onTimer() {
xQueueSend(uart_tx_queue[active_buffer], &rx_message, 0.001/portTICK_PERIOD_MS);
static uint16_t idx = 0;
BaseType_t task_woken = pdFALSE;
portENTER_CRITICAL(&spinlock);
if(update_flag){
rx_message.data[0]++;
}
if(rx_message.data[0]>84){
rx_message.data[0] = 0;
// update_flag = 0;
}
// active_buffer = 1 - active_buffer;
portEXIT_CRITICAL(&spinlock);
xTaskNotifyFromISR(uart_tx_task_handle,0,eNoAction,&task_woken);
if (task_woken == pdTRUE) {
portYIELD_FROM_ISR(task_woken);
}
}
void Data_Update_Task(void *parameters){
// Start a timer to run ISR every 1 ms
// %%% We move this here so it runs in core 0
ESP_LOGI(Timer_TAG, "Create timer handle");
gptimer_config_t timer_config = {
.clk_src = GPTIMER_CLK_SRC_DEFAULT,
.direction = GPTIMER_COUNT_UP,
.resolution_hz = 1000000, // 1MHz, 1 tick=1us
};
ESP_ERROR_CHECK(gptimer_new_timer(&timer_config, &gptimer));
gptimer_event_callbacks_t cbs = {
.on_alarm = onTimer,
};
ESP_ERROR_CHECK(gptimer_register_event_callbacks(gptimer, &cbs, NULL));
ESP_LOGI(Timer_TAG, "Enable timer");
ESP_ERROR_CHECK(gptimer_enable(gptimer));
ESP_LOGI(Timer_TAG, "Start timer, auto-reload at alarm event");
gptimer_alarm_config_t alarm_config = {
.reload_count = 0,
.alarm_count = 1000, // period = 1ms
.flags.auto_reload_on_alarm = true,
};
ESP_ERROR_CHECK(gptimer_set_alarm_action(gptimer, &alarm_config));
ESP_ERROR_CHECK(gptimer_start(gptimer));
while(1){
}
}
/*UART*/
void uart_init() {
uart_config_t uart_config = {
.baud_rate = 921600,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE
};
uart_param_config(UART_NUM, &uart_config);
ESP_ERROR_CHECK( uart_set_pin(UART_NUM, TXD_PIN, RXD_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE) );
// Install the UART driver with a buffer size of 1024 bytes
ESP_ERROR_CHECK( uart_driver_install(UART_NUM, 1024, 1024*4, 0, NULL, 0) );
ESP_LOGI(TX_TASK_TAG, "UART Driver Installed");
}
void uart_tx_task(void *parameters){
uart_init();
twai_message_t tx_message;
while (1) {
// Process all available TWAI messages in the active buffer
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
ESP_ERROR_CHECK (xQueueReceive(uart_tx_queue[active_buffer], &tx_message, portMAX_DELAY) );
// Process the TWAI message and send it over UART
CSF.dlc = tx_message.data_length_code;
CSF.msg_id = tx_message.identifier;
for (int i = 0; i < tx_message.data_length_code && i < sizeof(CSF.payload); i++) {
CSF.payload[i] = tx_message.data[i];
}
// ESP_ERROR_CHECK( uart_write_bytes(UART_NUM, (const char *)&CSF, sizeof(CSF)) );
ESP_LOGI(TX_TASK_TAG, "Data Sent: %d",CSF.payload[0]);
}
}
void app_main(void){
/*Create two queues for double buffering of UART transmit*/
uart_tx_queue[0] = xQueueCreate(100, sizeof(twai_message_t));
uart_tx_queue[1] = xQueueCreate(100, sizeof(twai_message_t));
/*Initialize TWAI*/
// twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(TWAI_RX_PIN_CONFIG);
// twai_init(&g_config);
/*Create TWAI Receive Task pinned to core 0*/
xTaskCreate(Data_Update_Task, "twai_receive_task", 1024*5, NULL, TWAI_RX_TASK_PRIORITY, &processing_task);
/*Create UART Transmit Task pinned to core 1*/
xTaskCreate(uart_tx_task, "uart_tx_task", 1024*5, NULL, UART_TX_TASK_PRIORITY, &uart_tx_task_handle);
}
Here is the output:
Code: Select all
I (4004) TX_TASK: Data Sent: 12
I (4004) TX_TASK: Data Sent: 16
I (4014) TX_TASK: Data Sent: 38
I (4014) TX_TASK: Data Sent: 42
I (4014) TX_TASK: Data Sent: 70
I (4024) TX_TASK: Data Sent: 74
I (4024) TX_TASK: Data Sent: 78
I (4034) TX_TASK: Data Sent: 82
I (4034) TX_TASK: Data Sent: 19
I (4034) TX_TASK: Data Sent: 23
I (4044) TX_TASK: Data Sent: 46
I (4044) TX_TASK: Data Sent: 50
I (4044) TX_TASK: Data Sent: 54
I (4054) TX_TASK: Data Sent: 80
I (4054) TX_TASK: Data Sent: 84
I (4064) TX_TASK: Data Sent: 27
I (4064) TX_TASK: Data Sent: 31
I (4064) TX_TASK: Data Sent: 35
I (4074) TX_TASK: Data Sent: 57
I (4074) TX_TASK: Data Sent: 61
I (4084) TX_TASK: Data Sent: 65
I (4084) TX_TASK: Data Sent: 3
I (4084) TX_TASK: Data Sent: 7
I (4094) TX_TASK: Data Sent: 11
I (4094) TX_TASK: Data Sent: 33
I (4094) TX_TASK: Data Sent: 69
I (4104) TX_TASK: Data Sent: 73
I (4104) TX_TASK: Data Sent: 77
I (4114) TX_TASK: Data Sent: 14
I (4114) TX_TASK: Data Sent: 18
I (4114) TX_TASK: Data Sent: 22
I (4124) TX_TASK: Data Sent: 37
I (4124) TX_TASK: Data Sent: 41
I (4124) TX_TASK: Data Sent: 45
I (4134) TX_TASK: Data Sent: 49
I (4134) TX_TASK: Data Sent: 53
I (4144) TX_TASK: Data Sent: 26
I (4144) TX_TASK: Data Sent: 30
I (4144) TX_TASK: Data Sent: 56
I (4154) TX_TASK: Data Sent: 60
I (4154) TX_TASK: Data Sent: 64
I (4164) TX_TASK: Data Sent: 68
I (4164) TX_TASK: Data Sent: 75
I (4164) TX_TASK: Data Sent: 79
I (4174) TX_TASK: Data Sent: 83
I (4174) TX_TASK: Data Sent: 2
I (4174) TX_TASK: Data Sent: 6
I (4184) TX_TASK: Data Sent: 72
I (4184) TX_TASK: Data Sent: 9
I (4194) TX_TASK: Data Sent: 13
I (4194) TX_TASK: Data Sent: 17
I (4194) TX_TASK: Data Sent: 21
I (4204) TX_TASK: Data Sent: 28
I (4204) TX_TASK: Data Sent: 32
I (4204) TX_TASK: Data Sent: 36
I (4214) TX_TASK: Data Sent: 40
I (4214) TX_TASK: Data Sent: 44
I (4224) TX_TASK: Data Sent: 25
I (4224) TX_TASK: Data Sent: 47
I (4224) TX_TASK: Data Sent: 51
I (4234) TX_TASK: Data Sent: 55
I (4234) TX_TASK: Data Sent: 59
I (4244) TX_TASK: Data Sent: 63
I (4244) TX_TASK: Data Sent: 70
I (4244) TX_TASK: Data Sent: 74
I (4254) TX_TASK: Data Sent: 78
I (4254) TX_TASK: Data Sent: 82
I (4254) TX_TASK: Data Sent: 1
I (4264) TX_TASK: Data Sent: 67
I (4264) TX_TASK: Data Sent: 4
I (4274) TX_TASK: Data Sent: 8
I (4274) TX_TASK: Data Sent: 12
I (4274) TX_TASK: Data Sent: 19
I (4284) TX_TASK: Data Sent: 23
I (4284) TX_TASK: Data Sent: 27
I (4284) TX_TASK: Data Sent: 31
I (4294) TX_TASK: Data Sent: 35
I (4294) TX_TASK: Data Sent: 39
I (4304) TX_TASK: Data Sent: 16
I (4304) TX_TASK: Data Sent: 42
I (4304) TX_TASK: Data Sent: 46
I (4314) TX_TASK: Data Sent: 50
I (4314) TX_TASK: Data Sent: 54
I (4314) TX_TASK: Data Sent: 65
I (4324) TX_TASK: Data Sent: 69
I (4324) TX_TASK: Data Sent: 73
I (4334) TX_TASK: Data Sent: 77
I (4334) TX_TASK: Data Sent: 81
I (4334) TX_TASK: Data Sent: 18
I (4344) TX_TASK: Data Sent: 58
I (4344) TX_TASK: Data Sent: 62
I (4354) TX_TASK: Data Sent: 84
I (4354) TX_TASK: Data Sent: 3
I (4354) TX_TASK: Data Sent: 7
I (4364) TX_TASK: Data Sent: 22
I (4364) TX_TASK: Data Sent: 26
I (4364) TX_TASK: Data Sent: 30
I (4374) TX_TASK: Data Sent: 34
I (4374) TX_TASK: Data Sent: 60
I (4384) TX_TASK: Data Sent: 11
I (4384) TX_TASK: Data Sent: 15
I (4384) TX_TASK: Data Sent: 37
I (4394) TX_TASK: Data Sent: 41
I (4394) TX_TASK: Data Sent: 45
I (4394) TX_TASK: Data Sent: 49
I (4404) TX_TASK: Data Sent: 64
I (4404) TX_TASK: Data Sent: 68
I (4414) TX_TASK: Data Sent: 72
I (4414) TX_TASK: Data Sent: 76
I (4414) TX_TASK: Data Sent: 13
I (4424) TX_TASK: Data Sent: 53
I (4424) TX_TASK: Data Sent: 57
I (4434) TX_TASK: Data Sent: 79
I (4434) TX_TASK: Data Sent: 83
I (4434) TX_TASK: Data Sent: 2
I (4444) TX_TASK: Data Sent: 17
I (4444) TX_TASK: Data Sent: 21
I (4444) TX_TASK: Data Sent: 25
I (4454) TX_TASK: Data Sent: 29
I (4454) TX_TASK: Data Sent: 51
I (4464) TX_TASK: Data Sent: 55
I (4464) TX_TASK: Data Sent: 6
I (4464) TX_TASK: Data Sent: 10
I (4474) TX_TASK: Data Sent: 32
I (4474) TX_TASK: Data Sent: 36
I (4484) TX_TASK: Data Sent: 40
I (4484) TX_TASK: Data Sent: 59
I (4484) TX_TASK: Data Sent: 63
I (4494) TX_TASK: Data Sent: 67
I (4494) TX_TASK: Data Sent: 71
I (4494) TX_TASK: Data Sent: 8
I (4504) TX_TASK: Data Sent: 44
I (4504) TX_TASK: Data Sent: 48
I (4514) TX_TASK: Data Sent: 74
I (4514) TX_TASK: Data Sent: 78
I (4514) TX_TASK: Data Sent: 82
I (4524) TX_TASK: Data Sent: 12
I (4524) TX_TASK: Data Sent: 16
I (4524) TX_TASK: Data Sent: 20
I (4534) TX_TASK: Data Sent: 24
I (4534) TX_TASK: Data Sent: 28
I (4544) TX_TASK: Data Sent: 46
I (4544) TX_TASK: Data Sent: 1
I (4544) TX_TASK: Data Sent: 5
I (4554) TX_TASK: Data Sent: 31
I (4554) TX_TASK: Data Sent: 35
I (4554) TX_TASK: Data Sent: 39
I (4564) TX_TASK: Data Sent: 50
I (4564) TX_TASK: Data Sent: 54
I (4574) TX_TASK: Data Sent: 58
I (4574) TX_TASK: Data Sent: 62
I (4574) TX_TASK: Data Sent: 66
I (4584) TX_TASK: Data Sent: 43
I (4584) TX_TASK: Data Sent: 69
I (4594) TX_TASK: Data Sent: 73
I (4594) TX_TASK: Data Sent: 77
I (4594) TX_TASK: Data Sent: 81
I (4604) TX_TASK: Data Sent: 0
I (4604) TX_TASK: Data Sent: 3
I (4604) TX_TASK: Data Sent: 7
I (4614) TX_TASK: Data Sent: 11
I (4614) TX_TASK: Data Sent: 15
I (4624) TX_TASK: Data Sent: 26
I (4624) TX_TASK: Data Sent: 30
I (4624) TX_TASK: Data Sent: 34
I (4634) TX_TASK: Data Sent: 38
I (4634) TX_TASK: Data Sent: 60
I (4634) TX_TASK: Data Sent: 19
I (4644) TX_TASK: Data Sent: 23
I (4644) TX_TASK: Data Sent: 41
I (4654) TX_TASK: Data Sent: 45
I (4654) TX_TASK: Data Sent: 49
I (4654) TX_TASK: Data Sent: 53
I (4664) TX_TASK: Data Sent: 64
I (4664) TX_TASK: Data Sent: 68
I (4674) TX_TASK: Data Sent: 72
I (4674) TX_TASK: Data Sent: 76
I (4674) TX_TASK: Data Sent: 17
I (4684) TX_TASK: Data Sent: 57
I (4684) TX_TASK: Data Sent: 79
I (4684) TX_TASK: Data Sent: 83
I (4694) TX_TASK: Data Sent: 2
I (4694) TX_TASK: Data Sent: 6
I (4704) TX_TASK: Data Sent: 21
I (4704) TX_TASK: Data Sent: 25
I (4704) TX_TASK: Data Sent: 29
I (4714) TX_TASK: Data Sent: 33
I (4714) TX_TASK: Data Sent: 55
I (4714) TX_TASK: Data Sent: 10
I (4724) TX_TASK: Data Sent: 14
I (4724) TX_TASK: Data Sent: 36
I (4734) TX_TASK: Data Sent: 40
I (4734) TX_TASK: Data Sent: 44
I (4734) TX_TASK: Data Sent: 48
I (4744) TX_TASK: Data Sent: 59
I (4744) TX_TASK: Data Sent: 63
I (4754) TX_TASK: Data Sent: 67
I (4754) TX_TASK: Data Sent: 71
I (4754) TX_TASK: Data Sent: 8
I (4764) TX_TASK: Data Sent: 52
I (4764) TX_TASK: Data Sent: 74
I (4764) TX_TASK: Data Sent: 78
I (4774) TX_TASK: Data Sent: 82
I (4774) TX_TASK: Data Sent: 1
I (4784) TX_TASK: Data Sent: 12
I (4784) TX_TASK: Data Sent: 16
I (4784) TX_TASK: Data Sent: 20
I (4794) TX_TASK: Data Sent: 24
I (4794) TX_TASK: Data Sent: 28
I (4794) TX_TASK: Data Sent: 50
I (4804) TX_TASK: Data Sent: 5
I (4804) TX_TASK: Data Sent: 31
I (4814) TX_TASK: Data Sent: 35
I (4814) TX_TASK: Data Sent: 39
I (4814) TX_TASK: Data Sent: 43
I (4824) TX_TASK: Data Sent: 54
I (4824) TX_TASK: Data Sent: 58
I (4834) TX_TASK: Data Sent: 62
I (4834) TX_TASK: Data Sent: 66
I (4834) TX_TASK: Data Sent: 70
I (4844) TX_TASK: Data Sent: 47
I (4844) TX_TASK: Data Sent: 73
I (4844) TX_TASK: Data Sent: 77
I (4854) TX_TASK: Data Sent: 81
I (4854) TX_TASK: Data Sent: 0
I (4864) TX_TASK: Data Sent: 3
I (4864) TX_TASK: Data Sent: 7
I (4864) TX_TASK: Data Sent: 11
I (4874) TX_TASK: Data Sent: 15
I (4874) TX_TASK: Data Sent: 19
I (4874) TX_TASK: Data Sent: 26
I (4884) TX_TASK: Data Sent: 30
I (4884) TX_TASK: Data Sent: 34
I (4894) TX_TASK: Data Sent: 38
I (4894) TX_TASK: Data Sent: 42
I (4894) TX_TASK: Data Sent: 23
I (4904) TX_TASK: Data Sent: 45
I (4904) TX_TASK: Data Sent: 49
I (4914) TX_TASK: Data Sent: 53
I (4914) TX_TASK: Data Sent: 57
I (4914) TX_TASK: Data Sent: 61
I (4924) TX_TASK: Data Sent: 68
I (4924) TX_TASK: Data Sent: 72
I (4924) TX_TASK: Data Sent: 76
I (4934) TX_TASK: Data Sent: 80
I (4934) TX_TASK: Data Sent: 84
I (4944) TX_TASK: Data Sent: 65
I (4944) TX_TASK: Data Sent: 2
I (4944) TX_TASK: Data Sent: 6
I (4954) TX_TASK: Data Sent: 10
I (4954) TX_TASK: Data Sent: 14
I (4954) TX_TASK: Data Sent: 21
I (4964) TX_TASK: Data Sent: 25
I (4964) TX_TASK: Data Sent: 29
I (4974) TX_TASK: Data Sent: 33
I (4974) TX_TASK: Data Sent: 37
I (4974) TX_TASK: Data Sent: 63
I (4984) TX_TASK: Data Sent: 18
I (4984) TX_TASK: Data Sent: 40
I (4994) TX_TASK: Data Sent: 44
I (4994) TX_TASK: Data Sent: 48
I (4994) TX_TASK: Data Sent: 52
I (5004) TX_TASK: Data Sent: 67
I (5004) TX_TASK: Data Sent: 71
I (5004) TX_TASK: Data Sent: 75
I (5014) TX_TASK: Data Sent: 79
I (5014) TX_TASK: Data Sent: 12
I (5024) TX_TASK: Data Sent: 16
I (5024) TX_TASK: Data Sent: 56
I (5024) TX_TASK: Data Sent: 60
I (5034) TX_TASK: Data Sent: 82
I (5034) TX_TASK: Data Sent: 1
I (5034) TX_TASK: Data Sent: 5
I (5044) TX_TASK: Data Sent: 20
I (5044) TX_TASK: Data Sent: 24
I (5054) TX_TASK: Data Sent: 28
I (5054) TX_TASK: Data Sent: 32
I (5054) TX_TASK: Data Sent: 54
I (5064) TX_TASK: Data Sent: 9
I (5064) TX_TASK: Data Sent: 35
I (5074) TX_TASK: Data Sent: 39
I (5074) TX_TASK: Data Sent: 43
I (5074) TX_TASK: Data Sent: 47
I (5084) TX_TASK: Data Sent: 58
I (5084) TX_TASK: Data Sent: 62
I (5084) TX_TASK: Data Sent: 66
I (5094) TX_TASK: Data Sent: 70
I (5094) TX_TASK: Data Sent: 74
I (5104) TX_TASK: Data Sent: 51
I (5104) TX_TASK: Data Sent: 77
I (5104) TX_TASK: Data Sent: 81
I (5114) TX_TASK: Data Sent: 0
I (5114) TX_TASK: Data Sent: 4
I (5114) TX_TASK: Data Sent: 11
I (5124) TX_TASK: Data Sent: 15
I (5124) TX_TASK: Data Sent: 19
I (5134) TX_TASK: Data Sent: 23
I (5134) TX_TASK: Data Sent: 27
I (5134) TX_TASK: Data Sent: 8
I (5144) TX_TASK: Data Sent: 30
I (5144) TX_TASK: Data Sent: 34
I (5154) TX_TASK: Data Sent: 38
I (5154) TX_TASK: Data Sent: 42
I (5154) TX_TASK: Data Sent: 53
I (5164) TX_TASK: Data Sent: 57
I (5164) TX_TASK: Data Sent: 61
I (5164) TX_TASK: Data Sent: 65
I (5174) TX_TASK: Data Sent: 69
I (5174) TX_TASK: Data Sent: 6
I (5184) TX_TASK: Data Sent: 46
I (5184) TX_TASK: Data Sent: 50
I (5184) TX_TASK: Data Sent: 72
I (5194) TX_TASK: Data Sent: 76
I (5194) TX_TASK: Data Sent: 80
I (5194) TX_TASK: Data Sent: 10
I (5204) TX_TASK: Data Sent: 14
I (5204) TX_TASK: Data Sent: 18
I (5214) TX_TASK: Data Sent: 22
I (5214) TX_TASK: Data Sent: 26
I (5214) TX_TASK: Data Sent: 48
I (5224) TX_TASK: Data Sent: 84
I (5224) TX_TASK: Data Sent: 3
I (5234) TX_TASK: Data Sent: 29
I (5234) TX_TASK: Data Sent: 33
I (5234) TX_TASK: Data Sent: 37
I (5244) TX_TASK: Data Sent: 52
I (5244) TX_TASK: Data Sent: 56
I (5244) TX_TASK: Data Sent: 60
I (5254) TX_TASK: Data Sent: 64
I (5254) TX_TASK: Data Sent: 1
I (5264) TX_TASK: Data Sent: 41
I (5264) TX_TASK: Data Sent: 45
I (5264) TX_TASK: Data Sent: 67
I (5274) TX_TASK: Data Sent: 71
I (5274) TX_TASK: Data Sent: 75
I (5274) TX_TASK: Data Sent: 5
I (5284) TX_TASK: Data Sent: 9
I (5284) TX_TASK: Data Sent: 13
I (5294) TX_TASK: Data Sent: 17
I (5294) TX_TASK: Data Sent: 21
I (5294) TX_TASK: Data Sent: 79
I (5304) TX_TASK: Data Sent: 83
I (5304) TX_TASK: Data Sent: 24
I (5314) TX_TASK: Data Sent: 28
I (5314) TX_TASK: Data Sent: 32
I (5314) TX_TASK: Data Sent: 43
I (5324) TX_TASK: Data Sent: 47
I (5324) TX_TASK: Data Sent: 51
I (5324) TX_TASK: Data Sent: 55
I (5334) TX_TASK: Data Sent: 59
I (5334) TX_TASK: Data Sent: 0
I (5344) TX_TASK: Data Sent: 36
I (5344) TX_TASK: Data Sent: 40
I (5344) TX_TASK: Data Sent: 62
I (5354) TX_TASK: Data Sent: 66
I (5354) TX_TASK: Data Sent: 70
I (5354) TX_E (5364) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
E (5364) task_wdt: - IDLE (CPU 1)
E (5364) task_wdt: Tasks currently running:
E (5364) task_wdt: CPU 0: IDLE
E (5364) task_wdt: CPU 1: uart_tx_task
E (5364) task_wdt: Print CPU 1 backtrace
Backtrace: 0x400844E2:0x3FFB1370 0x40082A91:0x3FFB1390 0x400D519B:0x3FFB8FA0 0x400D595F:0x3FFB8FD0 0x400D47DB:0x3FFB8FF0 0x400D43A2:0x3FFB9010 0x4000BD83:0x3FFB9030 0x4000117D:0x3FFB9050 0x400592FE:0x3FFB9070 0x4005937A:0x3FFB9090 0x400DB4A7:0x3FFB90B0 0x400E3243:0x3FFB90E0 0x400DEE3E:0x3FFB9100 0x400DEFA9:0x3FFB9420 0x400E7135:0x3FFB9450 0x4008BB41:0x3FFB9480 0x400D5B9F:0x3FFB94D0 0x40088D35:0x3FFB9510
0x400844e2: esp_crosscore_isr at C:/Users/shauryachandra/esp/esp-idf/components/esp_system/crosscore_int.c:96
0x40082a91: _xt_lowint1 at C:/Users/shauryachandra/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1240
0x400d519b: uart_ll_get_txfifo_len at C:/Users/shauryachandra/esp/esp-idf/components/hal/esp32/include/hal/uart_ll.h:313 (discriminator 1)
(inlined by) uart_tx_char at C:/Users/shauryachandra/esp/esp-idf/components/vfs/vfs_uart.c:168 (discriminator 1)
0x400d595f: uart_write at C:/Users/shauryachandra/esp/esp-idf/components/vfs/vfs_uart.c:221
0x400d47db: console_write at C:/Users/shauryachandra/esp/esp-idf/components/vfs/vfs_console.c:73
0x400d43a2: esp_vfs_write at C:/Users/shauryachandra/esp/esp-idf/components/vfs/vfs.c:445 (discriminator 4)
0x4000bd83: _write_r in ROM
0x4000117d: __swrite in ROM
0x400592fe: __sflush_r in ROM
0x4005937a: _fflush_r in ROM
0x400db4a7: __sfvwrite_r at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fvwrite.c:251
0x400e3243: __sprint_r at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/vfprintf.c:429
(inlined by) __sprint_r at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/vfprintf.c:399
0x400dee3e: _vfprintf_r at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/vfprintf.c:1777 (discriminator 1)
0x400defa9: vprintf at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/vprintf.c:34 (discriminator 5)
0x400e7135: esp_log_writev at C:/Users/shauryachandra/esp/esp-idf/components/log/log.c:200
0x4008bb41: esp_log_write at C:/Users/shauryachandra/esp/esp-idf/components/log/log.c:210
0x400d5b9f: uart_tx_task at C:/Users/shauryachandra/Timer_UART_MultiCore/main/test.c:237 (discriminator 13)
0x40088d35: vPortTaskWrapper at C:/Users/shauryachandra/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162
TASK: Data Sent: 4
I (5434) TX_TASK: Data Sent: 8
I (5434) TX_TASK: Data Sent: 74
I (5434) TX_TASK: Data Sent: 78
I (5444) TX_TASK: Data Sent: 82
I (5444) TX_TASK: Data Sent: 15
I (5454) TX_TASK: Data Sent: 19
I (5454) TX_TASK: Data Sent: 12
I (5454) TX_TASK: Data Sent: 34
I (5464) TX_TASK: Data Sent: 38
I (5464) TX_TASK: Data Sent: 42
I (5464) TX_TASK: Data Sent: 46
I (5474) TX_TASK: Data Sent: 50
I (5474) TX_TASK: Data Sent: 23
I (5484) TX_TASK: Data Sent: 27
I (5484) TX_TASK: Data Sent: 31
I (5484) TX_TASK: Data Sent: 57
I (5494) TX_TASK: Data Sent: 61
I (5494) TX_TASK: Data Sent: 54
I (5504) TX_TASK: Data Sent: 76
I (5504) TX_TASK: Data Sent: 80
I (5504) TX_TASK: Data Sent: 84
I (5514) TX_TASK: Data Sent: 3
I (5514) TX_TASK: Data Sent: 65
I (5514) TX_TASK: Data Sent: 69
I (5524) TX_TASK: Data Sent: 73
I (5524) TX_TASK: Data Sent: 10
I (5534) TX_TASK: Data Sent: 14
I (5534) TX_TASK: Data Sent: 18
I (5534) TX_TASK: Data Sent: 7
I (5544) TX_TASK: Data Sent: 29
I (5544) TX_TASK: Data Sent: 33
I (5544) TX_TASK: Data Sent: 37
I (5554) TX_TASK: Data Sent: 41
I (5554) TX_TASK: Data Sent: 22
I (5564) TX_TASK: Data Sent: 26
I (5564) TX_TASK: Data Sent: 52
I (5564) TX_TASK: Data Sent: 56
I (5574) TX_TASK: Data Sent: 60
I (5574) TX_TASK: Data Sent: 64
I (5584) TX_TASK: Data Sent: 45
I (5584) TX_TASK: Data Sent: 49
I (5584) TX_TASK: Data Sent: 71
I (5594) TX_TASK: Data Sent: 75
I (5594) TX_TASK: Data Sent: 79
I (5594) TX_TASK: Data Sent: 68
I (5604) TX_TASK: Data Sent: 5
I (5604) TX_TASK: Data Sent: 9
I (5614) TX_TASK: Data Sent: 13
I (5614) TX_TASK: Data Sent: 17
I (5614) TX_TASK: Data Sent: 83
I (5624) TX_TASK: Data Sent: 2
I (5624) TX_TASK: Data Sent: 28
I (5624) TX_TASK: Data Sent: 32
I (5634) TX_TASK: Data Sent: 36
I (5634) TX_TASK: Data Sent: 21
I (5644) TX_TASK: Data Sent: 25
I (5644) TX_TASK: Data Sent: 47
I (5644) TX_TASK: Data Sent: 51
I (5654) TX_TASK: Data Sent: 55
I (5654) TX_TASK: Data Sent: 40
I (5664) TX_TASK: Data Sent: 44
I (5664) TX_TASK: Data Sent: 66
I (5664) TX_TASK: Data Sent: 70
I (5674) TX_TASK: Data Sent: 74
I (5674) TX_TASK: Data Sent: 78
I (5674) TX_TASK: Data Sent: 59
I (5684) TX_TASK: Data Sent: 63
I (5684) TX_TASK: Data Sent: 0
I (5694) TX_TASK: Data Sent: 4
I (5694) TX_TASK: Data Sent: 82
I (5694) TX_TASK: Data Sent: 19
I (5704) TX_TASK: Data Sent: 23
I (5704) TX_TASK: Data Sent: 27
I (5704) TX_TASK: Data Sent: 31
I (5714) TX_TASK: Data Sent: 35
I (5714) TX_TASK: Data Sent: 8
I (5724) TX_TASK: Data Sent: 12
I (5724) TX_TASK: Data Sent: 16
I (5724) TX_TASK: Data Sent: 38
I (5734) TX_TASK: Data Sent: 42
I (5734) TX_TASK: Data Sent: 61
I (5744) TX_TASK: Data Sent: 65
I (5744) TX_TASK: Data Sent: 69
I (5744) TX_TASK: Data Sent: 73
I (5754) TX_TASK: Data Sent: 77
I (5754) TX_TASK: Data Sent: 46
I (5754) TX_TASK: Data Sent: 50
I (5764) TX_TASK: Data Sent: 54
I (5764) TX_TASK: Data Sent: 58
I (5774) TX_TASK: Data Sent: 80
I (5774) TX_TASK: Data Sent: 84
I (5774) TX_TASK: Data Sent: 14
I (5784) TX_TASK: Data Sent: 18
I (5784) TX_TASK: Data Sent: 22
I (5794) TX_TASK: Data Sent: 26
I (5794) TX_TASK: Data Sent: 30
I (5794) TX_TASK: Data Sent: 34
I (5804) TX_TASK: Data Sent: 3
I (5804) TX_TASK: Data Sent: 7
I (5804) TX_TASK: Data Sent: 11
I (5814) TX_TASK: Data Sent: 37
I (5814) TX_TASK: Data Sent: 56
I (5824) TX_TASK: Data Sent: 60
I (5824) TX_TASK: Data Sent: 64
I (5824) TX_TASK: Data Sent: 68
I (5834) TX_TASK: Data Sent: 72
I (5834) TX_TASK: Data Sent: 76
I (5834) TX_TASK: Data Sent: 41
I (5844) TX_TASK: Data Sent: 45
I (5844) TX_TASK: Data Sent: 49
I (5854) TX_TASK: Data Sent: 53
I (5854) TX_TASK: Data Sent: 79
I (5854) TX_TASK: Data Sent: 13
I (5864) TX_TASK: Data Sent: 17
I (5864) TX_TASK: Data Sent: 21
I (5874) TX_TASK: Data Sent: 25
I (5874) TX_TASK: Data Sent: 29
I (5874) TX_TASK: Data Sent: 51
I (5884) TX_TASK: Data Sent: 83
I (5884) TX_TASK: Data Sent: 2
I (5884) TX_TASK: Data Sent: 6
I (5894) TX_TASK: Data Sent: 10
I (5894) TX_TASK: Data Sent: 55
I (5904) TX_TASK: Data Sent: 59
I (5904) TX_TASK: Data Sent: 63
I (5904) TX_TASK: Data Sent: 67
I (5914) TX_TASK: Data Sent: 4
I (5914) TX_TASK: Data Sent: 32
I (5914) TX_TASK: Data Sent: 36
I (5924) TX_TASK: Data Sent: 40
I (5924) TX_TASK: Data Sent: 44
I (5934) TX_TASK: Data Sent: 48
I (5934) TX_TASK: Data Sent: 70
I (5934) TX_TASK: Data Sent: 8
I (5944) TX_TASK: Data Sent: 12
I (5944) TX_TASK: Data Sent: 16
I (5944) TX_TASK: Data Sent: 20
I (5954) TX_TASK: Data Sent: 42
I (5954) TX_TASK: Data Sent: 74
I (5964) TX_TASK: Data Sent: 78
I (5964) TX_TASK: Data Sent: 82
I (5964) TX_TASK: Data Sent: 1
I (5974) TX_TASK: Data Sent: 23
I (5974) TX_TASK: Data Sent: 46
I (5984) TX_TASK: Data Sent: 50
I (5984) TX_TASK: Data Sent: 54
I (5984) TX_TASK: Data Sent: 58
I (5994) TX_TASK: Data Sent: 62
I (5994) TX_TASK: Data Sent: 84
I (5994) TX_TASK: Data Sent: 27
I (6004) TX_TASK: Data Sent: 31
I (6004) TX_TASK: Data Sent: 35
I (6014) TX_TASK: Data Sent: 39
I (6014) TX_TASK: Data Sent: 65
I (6014) TX_TASK: Data Sent: 3
I (6024) TX_TASK: Data Sent: 7
I (6024) TX_TASK: Data Sent: 11
I (6024) TX_TASK: Data Sent: 15
I (6034) TX_TASK: Data Sent: 19
I (6034) TX_TASK: Data Sent: 69
I (6044) TX_TASK: Data Sent: 73
I (6044) TX_TASK: Data Sent: 77
I (6044) TX_TASK: Data Sent: 81
I (6054) TX_TASK: Data Sent: 22
I (6054) TX_TASK: Data Sent: 41
I (6064) TX_TASK: Data Sent: 45
I (6064) TX_TASK: Data Sent: 49
I (6064) TX_TASK: Data Sent: 53
I (6074) TX_TASK: Data Sent: 57
I (6074) TX_TASK: Data Sent: 79
I (6074) TX_TASK: Data Sent: 26
I (6084) TX_TASK: Data Sent: 30
I (6084) TX_TASK: Data Sent: 34
I (6094) TX_TASK: Data Sent: 38
I (6094) TX_TASK: Data Sent: 60
I (6094) TX_TASK: Data Sent: 83
I (6104) TX_TASK: Data Sent: 2
I (6104) TX_TASK: Data Sent: 6
I (6104) TX_TASK: Data Sent: 10
I (6114) TX_TASK: Data Sent: 32
I (6114) TX_TASK: Data Sent: 64
I (6124) TX_TASK: Data Sent: 68
I (6124) TX_TASK: Data Sent: 72
I (6124) TX_TASK: Data Sent: 76
I (6134) TX_TASK: Data Sent: 13
I (6134) TX_TASK: Data Sent: 36
I (6144) TX_TASK: Data Sent: 40
I (6144) TX_TASK: Data Sent: 44
I (6144) TX_TASK: Data Sent: 48
I (6154) TX_TASK: Data Sent: 52
I (6154) TX_TASK: Data Sent: 74
I (6154) TX_TASK: Data Sent: 17
I (6164) TX_TASK: Data Sent: 21
I (6164) TX_TASK: Data Sent: 25
I (6174) TX_TASK: Data Sent: 29
I (6174) TX_TASK: Data Sent: 55
I (6174) TX_TASK: Data Sent: 31
I (6184) TX_TASK: Data Sent: 53
I (6184) TX_TASK: Data Sent: 57
I (6194) TX_TASK: Data Sent: 61
I (6194) TX_TASK: Data Sent: 65
I (6194) TX_TASK: Data Sent: 69
I (6204) TX_TASK: Data Sent: 59
I (6204) TX_TASK: Data Sent: 63
I (6204) TX_TASK: Data Sent: 67
I (6214) TX_TASK: Data Sent: 71
I (6214) TX_TASK: Data Sent: 34
I (6224) TX_TASK: Data Sent: 38
I (6224) TX_TASK: Data Sent: 73
I (6224) TX_TASK: Data Sent: 10
I (6234) TX_TASK: Data Sent: 14
I (6234) TX_TASK: Data Sent: 18
I (6234) TX_TASK: Data Sent: 22
I (6244) TX_TASK: Data Sent: 42
I (6244) TX_TASK: Data Sent: 46
I (6254) TX_TASK: Data Sent: 50
I (6254) TX_TASK: Data Sent: 76
I (6254) TX_TASK: Data Sent: 80
I (6264) TX_TASK: Data Sent: 84
I (6264) TX_TASK: Data Sent: 26
I (6274) TX_TASK: Data Sent: 52
I (6274) TX_TASK: Data Sent: 56
I (6274) TX_TASK: Data Sent: 60
I (6284) TX_TASK: Data Sent: 64
I (6284) TX_TASK: Data Sent: 3
I (6284) TX_TASK: Data Sent: 7
I (6294) TX_TASK: Data Sent: 29
I (6294) TX_TASK: Data Sent: 33
I (6304) TX_TASK: Data Sent: 37
I (6304) TX_TASK: Data Sent: 68
I (6304) TX_TASK: Data Sent: 9
I (6314) TX_TASK: Data Sent: 13
I (6314) TX_TASK: Data Sent: 17
I (6314) TX_TASK: Data Sent: 21
I (6324) TX_TASK: Data Sent: 41
I (6324) TX_TASK: Data Sent: 45
I (6334) TX_TASK: Data Sent: 49
I (6334) TX_TASK: Data Sent: 71
I (6334) TX_TASK: Data Sent: 75
I (6344) TX_TASK: Data Sent: 25
I (6344) TX_TASK: Data Sent: 47
I (6354) TX_TASK: Data Sent: 51
I (6354) TX_TASK: Data Sent: 55
I (6354) TX_TASK: Data Sent: 59
I (6364) TX_TASK: Data Sent: 63
I (6364) TX_TASK: Data Sent: 79
I (6364) TX_TASK: Data Sent: 83
I (6374) TX_TASK: Data Sent: 2
I (6374) TX_TASK: Data Sent: 6
I (6384) TX_TASK: Data Sent: 0
After around 5 seconds, the watchdog timer is also triggered.
If someone can please explain what is happening, it will be really helpful.
Thank you!