tinyriscv/tests/example/lib/utils.c

27 lines
383 B
C
Raw Normal View History

#include <stdint.h>
#include "../include/utils.h"
uint64_t get_cycle_value()
{
uint64_t cycle;
cycle = read_csr(cycle);
cycle += (uint64_t)(read_csr(cycleh)) << 32;
return cycle;
}
void busy_wait(uint32_t us)
{
uint64_t tmp;
uint32_t count;
count = us * CPU_FREQ_MHZ;
tmp = get_cycle_value();
while (get_cycle_value() < (tmp + count));
}