Code: Select all
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
QueueHandle_t xQueue;
static void vSender(void *pvParameters)
{
int32_t IValueToSend;
BaseType_t xStatus;
IValueToSend = (int32_t)pvParameters;
for(;;)
{
xStatus = xQueueSendToBack(xQueue,&IValueToSend,0);
if(xStatus != pdPASS) printf("Could not send to Queue\n");
vTaskDelay(pdMS_TO_TICKS(100));
}
}
static void vReceiver(void *pvParameters)
{
int32_t IReceivedValue;
BaseType_t xStatus;
const TickType_t xTicksToWait = pdMS_TO_TICKS(100);
for(;;)
{
if(uxQueueMessagesWaiting(xQueue)!=0) printf("Queue should be empy what is wrong?");
xStatus = xQueueReceive(xQueue,&IReceivedValue, xTicksToWait);
if(xStatus == pdPASS) printf("Received data");
else printf("Did not receive data");
}
}
void app_main(void)
{
xQueue = xQueueCreate(5,sizeof(int32_t));
if(xQueue != NULL)
{
xTaskCreate(vSender,"Sender 1",1000,(void *)100,1,NULL);
xTaskCreate(vSender,"Sender 2",1000,(void *)200,1,NULL);
xTaskCreate(vReceiver,"Receiver",1000,NULL, 2,NULL);
}
for(;;) vTaskDelay(pdMS_TO_TICKS(10));
}
Code: Select all
I (308) app_start: Starting scheduler on CPU0
I (313) app_start: Starting scheduler on CPU1
I (313) main_task: Started on CPU0
I (323) main_task: Calling app_main()
Guru Meditation Error: Core 0 panic'ed (StoreProhibited). Exception was unhandled.
Core 0 register dump:
PC : 0x40088485 PS : 0x00060033 A0 : 0x80086583 A1 : 0x3ffb6680
0x40088485: uxListRemove at /home/ktrejo/esp32/esp/esp-idf/components/freertos/FreeRTOS-Kernel/list.c:197
A2 : 0x3ffb638c A3 : 0x3ffb6388 A4 : 0x3ffb6388 A5 : 0x00000000
A6 : 0x00000001 A7 : 0x00000000 A8 : 0x3ffb2430 A9 : 0x3ffb2438
A10 : 0x00060020 A11 : 0x00000000 A12 : 0x80085d0d A13 : 0x3ffb63c0
A14 : 0x00000001 A15 : 0x00000000 SAR : 0x00000000 EXCCAUSE: 0x0000001d
EXCVADDR: 0x00060028 LBEG : 0x400014fd LEND : 0x4000150d LCOUNT : 0xffffffff
0x400014fd: strlen in ROM
0x4000150d: strlen in ROM
Backtrace: 0x40088482:0x3ffb6680 0x40086580:0x3ffb66a0 0x40086c9e:0x3ffb66c0 0x40088130:0x3ffb66e0 0x400880e2:0x3ffb6694 |<-CORRUPTED
0x40088482: uxListRemove at /home/ktrejo/esp32/esp/esp-idf/components/freertos/FreeRTOS-Kernel/list.c:197
0x40086580: taskSelectHighestPriorityTaskSMP at /home/ktrejo/esp32/esp/esp-idf/components/freertos/FreeRTOS-Kernel/tasks.c:3672
0x40086c9e: vTaskSwitchContext at /home/ktrejo/esp32/esp/esp-idf/components/freertos/FreeRTOS-Kernel/tasks.c:3756 (discriminator 3)
0x40088130: _frxt_dispatch at /home/ktrejo/esp32/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:450
0x400880e2: _frxt_int_exit at /home/ktrejo/esp32/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:245
ELF file SHA256: 752fd9e24
Rebooting...