Move LED_ON()/LED_OFF() just after sig_wait(). Since they represent a C
language barrier they basically disables optimizations around it,
causing time measurements to be more determistic.
Moreover, be sure to not start child processes before we set the right
priority.
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3714
38d2e660-2303-0410-9eaa-
f027e97ec537
while (1)
{
sig_wait(SIG_USER0);
while (1)
{
sig_wait(SIG_USER0);
- #if CONFIG_USE_HP_TIMER
- end = timer_hw_hpread();
- #endif
#if CONFIG_USE_LED
LED_ON();
#endif
#if CONFIG_USE_LED
LED_ON();
#endif
+ #if CONFIG_USE_HP_TIMER
+ end = timer_hw_hpread();
+ #endif
sig_send(main_proc, SIG_USER0);
}
}
sig_send(main_proc, SIG_USER0);
}
}
while (1)
{
sig_wait(SIG_USER0);
while (1)
{
sig_wait(SIG_USER0);
- #if CONFIG_USE_HP_TIMER
- start = timer_hw_hpread();
- #endif
#if CONFIG_USE_LED
LED_ON();
LED_OFF();
#endif
#if CONFIG_USE_LED
LED_ON();
LED_OFF();
#endif
+ #if CONFIG_USE_HP_TIMER
+ start = timer_hw_hpread();
+ #endif
sig_send(hp_proc, SIG_USER0);
}
}
sig_send(hp_proc, SIG_USER0);
}
}
hp_proc = proc_new(hp_process, NULL, PROC_STACK_SIZE, hp_stack);
lp_proc = proc_new(lp_process, NULL, PROC_STACK_SIZE, lp_stack);
main_proc = proc_current();
hp_proc = proc_new(hp_process, NULL, PROC_STACK_SIZE, hp_stack);
lp_proc = proc_new(lp_process, NULL, PROC_STACK_SIZE, lp_stack);
main_proc = proc_current();
proc_setPri(hp_proc, 2);
proc_setPri(lp_proc, 1);
proc_setPri(hp_proc, 2);
proc_setPri(lp_proc, 1);
sig_send(lp_proc, SIG_USER0);
sig_wait(SIG_USER0);
sig_send(lp_proc, SIG_USER0);
sig_wait(SIG_USER0);
hptime_to_us((end - start)),
hptime_to_us((end - start) * 1000) % 1000);
#endif
hptime_to_us((end - start)),
hptime_to_us((end - start) * 1000) % 1000);
#endif