The OSAL API currently exposes a trickle timer API. All the logic specific to the tickle timers is generic and does not need to be in the abstraction layer. The current implementation will lead to code duplications and will force future developers to understand what's a trickle timer and how it works.
I suggest moving that logic out of the OSAL and exposing a generic timer API.
define and implement a new osal_start_timer(duration, handler)
move the tickle logic out of osal_linux.c and osal_freertos.c
The OSAL API currently exposes a trickle timer API. All the logic specific to the tickle timers is generic and does not need to be in the abstraction layer. The current implementation will lead to code duplications and will force future developers to understand what's a trickle timer and how it works. I suggest moving that logic out of the OSAL and exposing a generic timer API.