2025-01-22 01:33 PM
Hello! I am developing my first FreeRTOS system and believe I have an error somewhere between tasks and I cannot find a good way to monitor them as the debugger is not showing me that multiple threads are running but as I step through it jumps from task to task when they are blocked so they should be preempting.
Anyways, I am using the STM32F446RE Nucleo development board with the folowing firmware versions:
ST-Link V2J4M32 STM Debug+Mass storage+VCP
STM32CubeIDE 1.16.1
Here is the setup for my tasks
/* definition and creation of NoteQueue1 */
osMessageQDef(NoteQueue1, 64, note);
NoteQueue1Handle = osMessageCreate(osMessageQ(NoteQueue1), NULL);
/* Create the thread(s) */
/* definition and creation of ParseMidi */
osThreadDef(ParseMidi, StartParseMidi, osPriorityNormal, 0, 128);
ParseMidiHandle = osThreadCreate(osThread(ParseMidi), (void*) ctrl);
/* definition and creation of AudioOutput */
osThreadDef(AudioOutput, StartAudioOutput, osPriorityNormal, 0, 128);
AudioOutputHandle = osThreadCreate(osThread(AudioOutput), (void*) ctrl);
/* Start scheduler */
osKernelStart();
And here is the error that is thrown by the debugger
Loading RTOS driver... FreeRTOS
Connecting to GDB server 127.0.0.1 on port 61234 ... Connected
Listen for GDB connection on port: 60000 ... Connected
xList.pxNext.pvOwner == 0x0
Update threads. Failed collecting threads.
This error repeats every step as well.
and here is my debug configuration settings
I also made sure within the .ioc file USE_TRACE_FACILITY, USE_STATS_FORMATTING_FUNCTIONS, are all enabled.
I would appreciate some sort of guidance if possible.
Please :)