arc: add _tsc_read for 64-bit timestamp

This implementation of _tsc_read returns a 64-bit value that
is derived from the 64-bit tick count multiplied by hwcycles per tick,
and then it adds the current value from the 32-bit timer.
This produces a 64-bit time. There is a bunch of math here, which
could be avoided if the CPU is built with Real-Time-Clock option.
EM Starter Kit SOCs don't have this. I don't think Arduino 101 does
either.

See ZEP-1559

Change-Id: I9f846d170246556ac40fe2f45809e457c6375d8c
Signed-off-by: Chuck Jordan <cjordan@synopsys.com>
This commit is contained in:
Chuck Jordan 2017-02-14 13:17:53 -08:00 committed by Anas Nashif
commit ae15a26751
3 changed files with 49 additions and 1 deletions

View file

@ -21,6 +21,12 @@ extern "C" {
#include <stdint.h>
#include <stddef.h>
/**
* @brief read timestamp register (CPU frequency)
*/
extern uint64_t _tsc_read(void);
/* Implementation of sys_io.h's documented functions */
static ALWAYS_INLINE