I think I either have a) a misunderstanding of the way FreeRTOS taskGetTickCount() function works or b) something not quite right with our port.
I have some debugging where I'm showing the output of xTaskGetCount(). Any time I've done a vTaskDelayUntil(), it seems it's updated and is current. But if I do a spin-wait, waiting for it to increment, it never will. I thought the interrupt fired ever tick and incremented that value. But I'm only running one task at the moment, so perhaps it is smart enough to never check for a reschedule and the tickCount never gets updated? Anyone who can set me straight on how the FreeRTOS tick count works, I'd be much obliged.
EDIT: A sample fragment:
void someTask(void * _)
{
portTickType now = xTaskGetTickCount();
for( ; xTaskGetTickCount() - now < 25; )
{
debug("%u", xTaskGetTickCount();
}
}
This will spin forever, long past the 25 ms implied when tick = 1 ms. The output will just continually list the same value over and over and over. IF I add a vTaskDelay() to the bottom of the loop though, it will increment healthily, and drop out eventually.