未验证 提交 5178e7ec 编写于 作者: T tyustli 提交者: GitHub

[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: Nguo <guozhanxin@rt-thread.com>
上级 d4b5555b
......@@ -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);
......
......@@ -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 */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册