I'm using FreeRTOS 9.0.0.
Application is compiled with gcc for Windows 10 x64.
I created periodic timer - xTimerCreate("RTC", 10000 / portTICKPERIODMS, pdTRUE, NULL, rtcdriverupdate_time);
for keep current OS time on the application side.
When I leave application for some time without activity eg. auto windows logoff or push app to background, I noticed that timer stops and handler "rtcdriverupdate_time()" is not called any more.
Is it FreeRTOS Windows port problem or Windows 10 itself ?
I have never tested on a Windows version greater than 7, so can't
comment on Windows 10 specifically, but remember when you are using the
FreeRTOS simulator the Windows threads running the FreeRTOS scheduler
are themselves scheduled by Windows. Perhaps Windows 10 will reduce the
priority after some time?
The only known issue with the Windows simulator is that deleting a task
will not always result in the memory allocated to the Windows thread
that the task existed in also being freed (the FreeRTOS memory is freed,
but not necessarily the memory allocated by Windows to its own thread).
Therefore, if you create and delete tasks rapidly, you will eventually
run out of [Windows] memory - but that will take many, many days to occur.
The same test I made on Linux and result is the same. So like you wrote it could be related to OS itself which reduce the priority of the task after some time.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.