I am facing a problem with PIC32 port when I try to use queues. I got a simple application, only one task, one queue. There are correctly initialised (task and queue handles aren’t null), vTaskStartScheduler() is called, then my task tries to receive a message from the queue with xQueueReceive().
I get stuck in vListInsert(), but :
1. My stack task doesn’t overflow (I use method 2 for stack checking and vApplicationStackOverflowHook() is never called)
2. I don’t think I have trouble with interrupts priorities : Kernell priority is 1, max interrupt priority is set to 4. Plus, I don’t have used any other interrupts than those used for the kernell.
3. When xQueueReceived() is called, the scheduler is running (xSchedulerRunning = 1 and uxSchedulerSuspended = 0) but in vListInsert(), scheduler is suspended (is that ok ?). Actually it is suspended when calling vTaskSuspendAll in xQueueGenericReceive().
4. Queue has been initialised, no pending message.
Then, a bus exception is thrown (DBE). I have the same problem if I create a second task that put a message into the queue.
If it could help, I am using XC32 v1.11. I can reproduce the problem with MPLAB Sim and when I am debugging with a Digilent Cerebot MX7ck board with built-in licensed debugger.