M4 调试单元 DWT测试 某个函数运行时间

26 篇文章 2 订阅
18 篇文章 0 订阅

初始化变量

  uint32_t * DWT_CONTROL=(uint32_t *)0xE0001000;
  uint32_t * DWT_CYCCNT=(uint32_t *)0xE0001004;
  uint32_t * DEMCR=(uint32_t *)0xE000EDFC;
  volatile uint32_t vtpai_process_start=0;
  volatile uint32_t vtpai_process_end=0;
  volatile uint32_t vtpai_process_over=0;

设置 DWT模块

  * DEMCR= * DEMCR | 0x01000000;
  * DWT_CYCCNT=0;
  * DWT_CONTROL = * DWT_CONTROL | 1;

使用 DWT模块 得到函数运行周期

vtpai_process_start=*DWT_CYCCNT;
ret = VTAPI_process(vtapi, voice_cache[m], &numDetection, detections);
vtpai_process_end=*DWT_CYCCNT;
printf("vtpai_process_count  is  %d\n",vtpai_process_end -vtpai_process_start );

根据得到的周期除以 运行频率可以得到执行这个函数需要多长时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值