8.x: timer.c/timer.h different prototype for void *pvTimerGetTimerID( const TimerHandle_t xTimer )

stephanhd wrote on Tuesday, April 07, 2015:

Hi out there,

just moving from 8.2.0 to 8.2.1.
Again (as it was in 8.2.0 already) my IAR complains about different definitions (the missing “const”) of:

*(timers.c) void vTimerSetTimerID( const TimerHandle_t xTimer, void *pvNewID )
*(timers.h) void pvTimerGetTimerID( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION;

So: is this intentionally and I do not get it? or is this a glitch?
Its easy to “repair” by adding the “const” into the timer.h but anyway I want to ask… :slight_smile:

Happy tasking, Stephan

rtel wrote on Tuesday, April 07, 2015:

Thanks for pointing this out.

The vTimerSetTimerID() function is new. Intended to allow ‘timer local storage’ so that a value can be passed between subsequent calls to the timer’s callback function. It isn’t actually documented yet.

I think the ‘set’ function should not have a const. It compiles with the const because the const is effectively cast away - but that is not good practice. So that has been removed.

The ‘get’ function should have a const in both places.

These changes have been made in the head revision - but not yet checked in.


stephanhd wrote on Tuesday, April 07, 2015:

thanks a lot and have a nice day!