新版本中,在开启HOOK功能的前提下,定义宏开关RT_HOOK_USING_FUNC_PTR将开启与过去相同的基于函数指针运行时注册的HOOK机制,实现向前兼容。 需要特别说明的是: ●该机制的优点:在运行时刻允许用户动态修改HOOK函数; ●其缺点是:即便用户并未使用对应的HOOK,该机制也将生成对...
新版本中,在开启HOOK功能的前提下,定义宏开关RT_HOOK_USING_FUNC_PTR将开启与过去相同的基于函数指针运行时注册的HOOK机制,实现向前兼容。 需要特别说明的是: 该机制的优点:在运行时刻允许用户动态修改HOOK函数; 其缺点是:即便用户并未使用对应的HOOK,该机制也将生成对应的代码,并在运行时刻略微占用一些几乎可以忽略...
新版本中,在开启HOOK功能的前提下,定义宏开关 RT_HOOK_USING_FUNC_PTR 将开启与过去相同的基于函数指针运行时注册的HOOK机制,实现向前兼容。 需要特别说明的是: 2.3 使用插入宏实现定点精细HOOK 无论用户是否定义了宏 RT_HOOK_USING_FUNC_PTR ,新的HOOK机制都允许用户“定点”、“精细”的对RT-Thread的任意锚点...
新版本中,在开启HOOK功能的前提下,定义宏开关RT_HOOK_USING_FUNC_PTR将开启与过去相同的基于函数指针运行时注册的HOOK机制,实现向前兼容。 需要特别说明的是: 该机制的优点:在运行时刻允许用户动态修改HOOK函数; 其缺点是:即便用户并未使用对应的HOOK,该机制也将生成对应的代码,并在运行时刻略微占用一些几乎可以忽略...
update Kconfig, add RT_HOOK_USING_FUNC_PTR Improving hooking methods Backward compatible with existing function-pointer based hooking method Using RT_USING_HOOK as an on/off switch Introducing a new low-overhead macro-based hooking method [include/rtthread.h] Add function declarations to avoid com...
#ifdef RT_HOOK_USING_FUNC_PTR #define __ON_HOOK_ARGS(__hook, argv) do {if ((__hook) != RT_NULL) __hook argv; } while (0) #else #define __ON_HOOK_ARGS(__hook, argv) #endif /* RT_HOOK_USING_FUNC_PTR */ #endif /* RT_USING_HOOK */ #ifndef __on_rt_interrupt_switch...
#define RT_HOOK_USING_FUNC_PTR #define RT_USING_IDLE_HOOK #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 1024 #define RT_USING_TIMER_SOFT #define RT_TIMER_THREAD_PRIO 4 #define RT_TIMER_THREAD_STACK_SIZE 512
RT_OBJECT_HOOK_CALL(rt_timer_timeout_hook, (t)); /* remove timer from timer list firstly */ _rt_timer_remove(t); /* call timeout function */ t->timeout_func(t->parameter); /* re-get tick */ current_tick = rt_tick_get(); RT_DEBUG_LOG(RT_DEBUG_TIMER, ("current tick: %d...
update Kconfig, add RT_HOOK_USING_FUNC_PTR Improving hooking methods Backward compatible with existing function-pointer based hooking method Using RT_USING_HOOK as an on/off switch Introducing a new low-overhead macro-based hooking method [include/rtthread.h] Add function declarations to avoid com...
(); /* 如果使用了钩子函数,把rt hw led flash函数挂到idle线程的执行中去 */ #ifdef RT USING HOOK /* set idle thread hook */ rt thread idle sethook(rt hw led flash); #endif /* 如果使用了设备框架 */ #ifdef RT USING DEVICE /* 注册/初始化硬件串口 */ rt hw serial init(); /* ...