【芯片教程】如何使用Haawking IDE内置的read_cycles函数测试程序执行周期
在Haawking IDE V2.1.3版本之后,都内置了一个可以获取芯片内部pc计数器的函数,read_cycles(),函数原型如下:__always_inline unsigned long read_cycles(void)
{
unsigned long cycles;
asm volatile ("csrr %0,0xb00" : "=r"(cycles));
return cycles;
}在使用的时候,需要定义三个全局变量,如下,来保存计数器的值。
volatile unsigned long start,end,total;在需要测试的代码前后,通过插入如下代码,就可以通过实时刷新窗口,观察到程序执行的时候所需的周期数。
<span style="background-color: darkorange;">start = read_cycles();</span>
GpioDataRegs.GPASET.bit.GPIO17=1;
adcValue = AdcResult.ADCRESULT0;
adcIQ=_IQ(adcValue);
GpioDataRegs.GPACLEAR.bit.GPIO17=1;
<span style="background-color: darkorange;"> end = read_cycles();
total = end - start;</span>
read_cycles 这个功能可以统计执行周期,对于统计周期很多的算法是有意义的,但是该功能不适用于单周期操作。
页:
[1]