提交 1730dcb8 编写于 作者: B Bernard Xiong 提交者: GitHub

Merge pull request #736 from geniusgogo/IDLE_hook

[kernel] Idle hook
......@@ -164,7 +164,7 @@ void rt_thread_inited_sethook (void (*hook)(rt_thread_t thread));
* idle thread interface
*/
void rt_thread_idle_init(void);
#ifdef RT_USING_HOOK
#if defined(RT_USING_HOOK) || defined(RT_USING_IDLE_HOOK)
void rt_thread_idle_sethook(void (*hook)(void));
#endif
void rt_thread_idle_excute(void);
......
......@@ -30,8 +30,14 @@
#include <rthw.h>
#include <rtthread.h>
#if defined (RT_USING_HOOK)
#ifndef RT_USING_IDLE_HOOK
#define RT_USING_IDLE_HOOK 1
#endif
#endif
#ifndef IDLE_THREAD_STACK_SIZE
#if defined (RT_USING_HOOK) || defined(RT_USING_HEAP)
#if defined (RT_USING_IDLE_HOOK) || defined(RT_USING_HEAP)
#define IDLE_THREAD_STACK_SIZE 256
#else
#define IDLE_THREAD_STACK_SIZE 128
......@@ -44,7 +50,7 @@ static rt_uint8_t rt_thread_stack[IDLE_THREAD_STACK_SIZE];
extern rt_list_t rt_thread_defunct;
#ifdef RT_USING_HOOK
#ifdef RT_USING_IDLE_HOOK
static void (*rt_thread_idle_hook)();
/**
......@@ -179,7 +185,13 @@ static void rt_thread_idle_entry(void *parameter)
{
while (1)
{
RT_OBJECT_HOOK_CALL(rt_thread_idle_hook,());
#ifdef RT_USING_IDLE_HOOK
if (rt_thread_idle_hook != RT_NULL)
{
rt_thread_idle_hook();
}
#endif
rt_thread_idle_excute();
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册