Tickless Idle and Software Timer Issue
I am using FreeRTOS 8.2.2. Same issue is present in FreeRTOS 8.2.1 as well.
Please find my project scenario below.
I am using Tickles Idle mode for extra power saving.
I have two tasks.
Task A creates a software timer (autoreload) using xTimerCreate call. This timer will expire at every 100 tick and call it callback function.
Task B will be called at every 2000 tick as I blocked it by vTaskDelay function.
Now, I am expecting controlller will be wakeup from Tickless Idle mode at every 100 tick and do its job.
However, as per my practical expriement, I am getting 100 tick xExpectedIdleTime most of the time. However, some times I am getting 2000 tick xExpectedIdleTime instead of 100 tick.
What will be the reason behind this?
Thanks,
Tarun
Tickless Idle and Software Timer Issue
If the timer is auto reload then I would not expect a 2000 tick delay – could you please create an example project that demonstrates this behaviour and send it to me a r [dot] barry at FreeRTOS [dot] org. Make the project as small as possible so it doesn’t do anything else other than demonstrate this behaviour.
Also – which chip and compiler are you using, and are you using a tickless idle implementation provided by ourselves or one that you provided yourself. Finally, is the priority of the timer task set to (configMAX_PRIORITIES – 1)? If not, what is it set to?
Regards.
Tickless Idle and Software Timer Issue
Thanks for prompt response.
Yes timer is auto reload and that’s why I am getting 100 tick xExpectedIdleTime most of the time. I will create a demo project and email you by tomorrow.
I am using Toshiba’s TZ1001 (ARM Cortex M4F) chip and Keil uVision compiler (V5.05 update 2 (build 169)).
We have implemented tickles idle ourselves. I mistakenly taken timer task priotity to configMAXPRIORITIES. I have corrected it to (configMAXPRIORITIES – 1) that however problem is still exist.
Thanks,
Tarun
Tickless Idle and Software Timer Issue
I have prepared a demo project. However, I am not able to reproduce this behaviour in that project. So I derived there is something in my project’s energy measurement library which creates this issue.
I have tried loads of workaround. However, when I enabled preemption using configUSE_PREEMPTION macro, the problem is resolved. I don’t know why.
Do you have any idea how this be possible? Meanwhile, I am digging my project for the reason.
Thanks,
Tarun
Tickless Idle and Software Timer Issue
I have tried loads of workaround. However, when I enabled preemption using configUSE_PREEMPTION macro, the problem is resolved. I don’t know why.I don’t think you mentioned you weren’t using pre-emption before. I have never tried tickless idle without preemption before.