Hi !
I’m experimenting with the windows MSVC_MINGW port.
After some doing some measurements, I’m realizing that my scheduler ticks are twice as slow as expected, i.e. 1ms is actually 2ms.
Here’s an example where a single task is schedule to be executed every 1000ms:
volatile int i = 0;
static void hello_task(void *pvParameters) {
(void)pvParameters;
TickType_t xLastWakeTime = xTaskGetTickCount();
for (;;) {
TracyCZone(ctx, 1); // Tracing utility
{
printf("%d\n", xTaskGetTickCount());
}
TracyCZoneEnd(ctx);
vTaskDelayUntil(&xLastWakeTime, pdMS_TO_TICKS(1000));
}
}
`FreeRTOSConfig.h` is configured so 1000 tick is 1000 ms
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
Here’s the console (as you can see, the task is executed every 1000ms)
Here’s my trace measurement (as you can see, the task is executed every 2000ms)
I was expecting the windows scheduler behavior to be a bit off, but the fact that it’s almost exactly twice as slow is suspicious to me.
My questions:
What could cause this difference? Do you have an idea on how to fix it?
As a follow-up, can we speed things up? My desktop is so much more powerful than a 32bit mcu, it would be convenient to run my simulation 100x faster than my actual code.
Thanks!

