26 lines
663 B
C
26 lines
663 B
C
#include <stdio.h>
|
|
|
|
uint64_t getcycles();
|
|
static void do_something()
|
|
{
|
|
for (int i = 0; i < 1000; ++i) {
|
|
__asm__("NOP");
|
|
}
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
// Instruction cache misses are relatively expensive, so for more
|
|
// consistent benchmarks that depend less on the relative speed of
|
|
// the QSPI flash, you might want to fill the instruction cache first.
|
|
// Note that it can hold 16 KiB of instructions on the HiFive1.
|
|
do_something();
|
|
getcycles();
|
|
uint64_t oldcount = getcycles();
|
|
do_something();
|
|
uint64_t newcount = getcycles();
|
|
|
|
printf("That took %d cycles.\n", (unsigned int)(newcount-oldcount));
|
|
return 0;
|
|
}
|