再玩剁手 发表于 2023-4-19 15:00:21

【芯片教程】如何使用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>

路过。。。 发表于 2023-8-15 08:12:50

read_cycles 这个功能可以统计执行周期,对于统计周期很多的算法是有意义的,但是该功能不适用于单周期操作。
页: [1]
查看完整版本: 【芯片教程】如何使用Haawking IDE内置的read_cycles函数测试程序执行周期