[add] src/clock.c add hook for rt_tick_increase (#5569)
* [add] src/clock.c add hook for rt_tick_increase * [fix] clock.c rt_tick_incerase hook function * Update clock.c Co-authored-by: guo <guozhanxin@rt-thread.com>
This commit is contained in:
parent
d4b5555b7e
commit
5178e7ec0b
|
@ -85,6 +85,9 @@ void rt_tick_set(rt_tick_t tick);
|
|||
void rt_tick_increase(void);
|
||||
rt_tick_t rt_tick_from_millisecond(rt_int32_t ms);
|
||||
rt_tick_t rt_tick_get_millisecond(void);
|
||||
#ifdef RT_USING_HOOK
|
||||
void rt_tick_sethook(void (*hook)(void));
|
||||
#endif
|
||||
|
||||
void rt_system_timer_init(void);
|
||||
void rt_system_timer_thread_init(void);
|
||||
|
|
28
src/clock.c
28
src/clock.c
|
@ -26,6 +26,32 @@
|
|||
static volatile rt_tick_t rt_tick = 0;
|
||||
#endif /* RT_USING_SMP */
|
||||
|
||||
#ifndef __on_rt_tick_hook
|
||||
#define __on_rt_tick_hook() __ON_HOOK_ARGS(rt_tick_hook, ())
|
||||
#endif
|
||||
|
||||
#if defined(RT_USING_HOOK) && defined(RT_HOOK_USING_FUNC_PTR)
|
||||
static void (*rt_tick_hook)(void);
|
||||
|
||||
/**
|
||||
* @addtogroup Hook
|
||||
*/
|
||||
|
||||
/**@{*/
|
||||
|
||||
/**
|
||||
* This function will set a hook function, which will be invoked when tick increase
|
||||
*
|
||||
*
|
||||
* @param hook the hook function
|
||||
*/
|
||||
void rt_tick_sethook(void (*hook)(void))
|
||||
{
|
||||
rt_tick_hook = hook;
|
||||
}
|
||||
/**@}*/
|
||||
#endif /* RT_USING_HOOK */
|
||||
|
||||
/**
|
||||
* @addtogroup Clock
|
||||
*/
|
||||
|
@ -67,6 +93,8 @@ void rt_tick_increase(void)
|
|||
struct rt_thread *thread;
|
||||
rt_base_t level;
|
||||
|
||||
RT_OBJECT_HOOK_CALL(rt_tick_hook, ());
|
||||
|
||||
level = rt_hw_interrupt_disable();
|
||||
|
||||
/* increase the global tick */
|
||||
|
|
Loading…
Reference in New Issue