代码时间分析

代码时间分析(Code Timing Analysis)是为了保证代码在规定的时间内都能执行完,常用的分析方法有软件仿真和波形测试,软件仿真指的就是加断点调试,在这里不做介绍,以下主要对波形测试进行说明。

波形测试通常将待测代码的前后增加GPIO口输出电平的翻转操作,通过示波器的GPIO口波形能够得到代码的执行时间,从而实现对代码的时间分析,测试代码如下:

// 1ms task
void TASK_1ms(...)
{
  GPIO_toggle(...); // GPIO toggle operation
  Func_1(...);
  GPIO_toggle(...); // GPIO toggle operation
  Func_2(...);
  GPIO_toggle(...); // GPIO toggle operation
  Func_3(...);
  GPIO_toggle(...); // GPIO toggle operation
}

上述代码在三个函数前后都加上了GPIO输出电平的翻转操作,通过示波器波形就可以得到每个函数的执行时间,示波器波形如下图所示。
这里写图片描述

如上图所示,如果初始化时,GPIO输出为高电平,那么图中的X轴光标时间就是Func_1( )的执行时间,其他函数的执行时间以此类推。

Tips:
首先,寻找第一次的翻转比较重要,如果在任务中添加的GPIO翻转次数是偶数的话,那么第一次的翻转很好找到;其次,无需关闭其他中断,因为目的就是要得到程序的真实执行时间;最后,如果任务中存在状态机的话,需要找到执行时间最长的那一次作为程序执行的最大时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值