diff --git a/SConscript b/SConscript index 3d54c10..753094c 100644 --- a/SConscript +++ b/SConscript @@ -6,7 +6,10 @@ import shutil src = ['perf_counter.c', 'os/perf_os_patch_rt_thread.c'] cwd = GetCurrentDir() path = [cwd] -CPPDEFINES = ['__PERF_COUNT_PLATFORM_SPECIFIC_HEADER__=', '__perf_counter_printf__=rt_kprintf', '__PERF_CNT_USE_RTOS__'] +CPPDEFINES = ['__PERF_COUNT_PLATFORM_SPECIFIC_HEADER__=', '__perf_counter_printf__=rt_kprintf'] + +if GetDepend('PKG_PERF_COUNTER_USING_THREAD_STATISTIC'): + CPPDEFINES += ['__PERF_CNT_USE_RTOS__'] #delate unused files try: diff --git a/os/perf_os_patch_rt_thread.c b/os/perf_os_patch_rt_thread.c index dce2134..67d7098 100644 --- a/os/perf_os_patch_rt_thread.c +++ b/os/perf_os_patch_rt_thread.c @@ -80,10 +80,12 @@ task_cycle_info_t * get_rtos_task_cycle_info(void) void __perf_os_patch_init(void) { -#ifdef PKG_USING_PERF_COUNTER +#ifdef PKG_PERF_COUNTER_USING_THREAD_STATISTIC rt_tick_sethook(user_code_insert_to_systick_handler); #endif +#if !defined(PKG_USING_PERF_COUNTER) || (defined(PKG_PERF_COUNTER_USING_THREAD_STATISTIC)) rt_scheduler_sethook(__rt_thread_scheduler_hook); +#endif } #ifdef PKG_USING_PERF_COUNTER @@ -91,6 +93,7 @@ void __ensure_systick_wrapper(void) { } +#ifdef PKG_PERF_COUNTER_USING_THREAD_STATISTIC #define DBG_TAG "perf_counter" #define DBG_LVL DBG_INFO #include @@ -103,4 +106,5 @@ static int _perf_counter_init(void) return 0; } INIT_PREV_EXPORT(_perf_counter_init); +#endif /* PKG_PERF_COUNTER_USING_THREAD_STATISTIC */ #endif /* PKG_USING_PERF_COUNTER */