tests: boot_time: cleanup boot_time test to work on ARM

Enabled the boot_time test on ARM SoCs, set __start_time_stamp on ARM
since we don't have a free running counter similar to TSC on x86.
Also moved to printing the values out as %u to increase the range of
values.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Kumar Gala 2017-06-28 13:14:02 -05:00 committed by Anas Nashif
commit 534beb34c9
3 changed files with 12 additions and 5 deletions

View file

@ -87,12 +87,18 @@ extern FUNC_NORETURN void _Cstart(void);
* @return N/A * @return N/A
*/ */
#ifdef CONFIG_BOOT_TIME_MEASUREMENT
extern u64_t __start_time_stamp;
#endif
void _PrepC(void) void _PrepC(void)
{ {
relocate_vector_table(); relocate_vector_table();
enable_floating_point(); enable_floating_point();
_bss_zero(); _bss_zero();
_data_copy(); _data_copy();
#ifdef CONFIG_BOOT_TIME_MEASUREMENT
__start_time_stamp = 0;
#endif
_Cstart(); _Cstart();
CODE_UNREACHABLE; CODE_UNREACHABLE;
} }

View file

@ -17,6 +17,7 @@
*/ */
#include <zephyr.h> #include <zephyr.h>
#include <tc_util.h> #include <tc_util.h>
/* externs */ /* externs */
@ -58,16 +59,16 @@ void main(void)
/* Only print lower 32bit of time result */ /* Only print lower 32bit of time result */
TC_PRINT("Boot Result: Clock Frequency: %d MHz\n", TC_PRINT("Boot Result: Clock Frequency: %d MHz\n",
freq); freq);
TC_PRINT("__start : %d cycles, %d us\n", TC_PRINT("__start : %u cycles, %u us\n",
(u32_t)(__start_time_stamp & 0xFFFFFFFFULL), (u32_t)(__start_time_stamp & 0xFFFFFFFFULL),
(u32_t) (_start_us & 0xFFFFFFFFULL)); (u32_t) (_start_us & 0xFFFFFFFFULL));
TC_PRINT("_start->main(): %d cycles, %d us\n", TC_PRINT("_start->main(): %u cycles, %u us\n",
(u32_t)(s_main_time_stamp & 0xFFFFFFFFULL), (u32_t)(s_main_time_stamp & 0xFFFFFFFFULL),
(u32_t) (main_us & 0xFFFFFFFFULL)); (u32_t) (main_us & 0xFFFFFFFFULL));
TC_PRINT("_start->task : %d cycles, %d us\n", TC_PRINT("_start->task : %u cycles, %u us\n",
(u32_t)(s_task_time_stamp & 0xFFFFFFFFULL), (u32_t)(s_task_time_stamp & 0xFFFFFFFFULL),
(u32_t) (task_us & 0xFFFFFFFFULL)); (u32_t) (task_us & 0xFFFFFFFFULL));
TC_PRINT("_start->idle : %d cycles, %d us\n", TC_PRINT("_start->idle : %u cycles, %u us\n",
(u32_t)(s_idle_time_stamp & 0xFFFFFFFFULL), (u32_t)(s_idle_time_stamp & 0xFFFFFFFFULL),
(u32_t) (idle_us & 0xFFFFFFFFULL)); (u32_t) (idle_us & 0xFFFFFFFFULL));

View file

@ -1,4 +1,4 @@
tests: tests:
- test: - test:
arch_whitelist: x86 arch_whitelist: x86 arm
tags: benchmark tags: benchmark