北京中科昊芯科技有限公司

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1010|回复: 1

【芯片教程】如何使用Haawking IDE内置的read_cycles函数测试程序执行周期

[复制链接]

14

主题

16

回帖

131

积分

注册会员

积分
131
发表于 2023-4-19 15:00:21 | 显示全部楼层 |阅读模式
在Haawking IDE V2.1.3版本之后,都内置了一个可以获取芯片内部pc计数器的函数,read_cycles(),函数原型如下:
  1. __always_inline unsigned long read_cycles(void)
  2. {
  3.         unsigned long cycles;
  4.         asm volatile ("csrr %0,0xb00" : "=r"(cycles));
  5.         return cycles;
  6. }
复制代码
在使用的时候,需要定义三个全局变量,如下,来保存计数器的值。
  1. volatile unsigned long start,end,total;
复制代码
在需要测试的代码前后,通过插入如下代码,就可以通过实时刷新窗口,观察到程序执行的时候所需的周期数。
  1. <span style="background-color: darkorange;">start = read_cycles();</span>
  2.         GpioDataRegs.GPASET.bit.GPIO17=1;
  3.         adcValue[0] = AdcResult.ADCRESULT0;
  4.         adcIQ=_IQ(adcValue[0]);
  5.         GpioDataRegs.GPACLEAR.bit.GPIO17=1;
  6. <span style="background-color: darkorange;">        end = read_cycles();
  7.         total = end - start;</span>
复制代码


0

主题

2

回帖

12

积分

新手上路

积分
12
发表于 2023-8-15 08:12:50 | 显示全部楼层
read_cycles 这个功能可以统计执行周期,对于统计周期很多的算法是有意义的,但是该功能不适用于单周期操作。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|北京中科昊芯科技有限公司 ( 京ICP备19023330号-3 )

GMT+8, 2024-4-19 15:40 , Processed in 0.144016 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表