static void rt_thread_idle_entry(void *parameter) { ... while (1) { #ifdef RT_USING_IDLE_HOOK rt_size_t i; void (*idle_hook)(void); for (i = 0; i < RT_IDLE_HOOK_LIST_SIZE; i++) { idle_hook = idle_hook_list[i]; if (idle_hook != RT_NULL) { idle_hook(); } } ...
static voidrt_thread_idle_entry(void*parameter){while(1){#ifdef RT_USING_IDLE_HOOK rt_size_t i;for(i=0;i<RT_IDLE_HOOK_LIST_SIZE;i++){if(idle_hook_list[i]!=RT_NULL){idle_hook_list[i]();}}#endifrt_thread_idle_excute();#ifdef RT_USING_PMrt_system_power_manager();#endif}}...
rt_thread_idle_excute函数用于清楚工作 staticvoidrt_thread_idle_entry(void*parameter){#ifdefRT_USING_SMPif(rt_hw_cpu_id()!=0){while(1){rt_hw_secondary_cpu_idle_exec();}}#endifwhile(1){#ifdefRT_USING_IDLE_HOOKrt_size_ti;for(i=0;i<RT_IDLE_HOOK_LIST_SIZE;i++){if(idle_hook_list...
注意:在使用rt_thread_idle_sethook前需要在rtconfig.h中开启宏RT_USING_IDLE_HOOK /** *** * F...
未开启RT_USING_IDLE_HOOK,若开启会执行idle钩子函数 rt_thread_idle_excute该功能将在系统空闲时执行系统后台任务。内部未开启RT_USING_HEAP 未开启RT_USING_PM,否则会进入电源管理器rt_system_power_manager } 开启调度器//RTOS/src/scheduler.c-rt_system_scheduler_start进行调度执行RTOS/libcpu/context_gcc.s...
配置PM 组件:勾选 BSP 里面的Hareware Drivers Config ---> On-chip Peripheral Drivers ---> Enable Power Management,使能了这个选项后,会自动选择 PM 组件和 PM 组件需要的 IDLE HOOK 功能: 配置组件配置内核选项:使用PM组件需要更大的 IDLE 线程的栈,这里使用了 1024 字节。例程里还使用 Software timer,所...
rt_thread_startup(&idle); } //idle.c idle的线程函数; staticvoidrt_thread_idle_entry(void*parameter) { while(1) { #ifdefRT_USING_IDLE_HOOK if(rt_thread_idle_hook != RT_NULL) { rt_thread_idle_hook(); } #endif rt_thread_idle_excute(); ...
// 是否 开启系统钩子功能//#define RT_USING_IDLE_HOOK // 是否 开启空闲线程钩子功能 软件定时...
// <c1>Using RT-Thread components initialization // <i>Using RT-Thread components initialization /*如果定义该宏,则会开启自动初始化机制,不定义的话就会关闭*/ #define RT_USING_COMPONENTS_INIT // </c> /*如果定义该宏,则设置应用入口为main函数*/ ...
// <c1>using idle hook // <i>using idlehook //#define RT_USING_IDLE_HOOK // </c> // </h>// <e>Software timers Configuration // <i> Enables user timers #define RT_USING_TIMER_SOFT 0 #if RT_USING_TIMER_SOFT == 0 #undefRT_USING_TIMER_SOFT ...