代码时间分析

来源:互联网 发布:决战武林进阶数据灵宠 编辑:程序博客网 时间:2024/06/06 04:00

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

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

// 1ms taskvoid 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翻转次数是偶数的话,那么第一次的翻转很好找到;其次,无需关闭其他中断,因为目的就是要得到程序的真实执行时间;最后,如果任务中存在状态机的话,需要找到执行时间最长的那一次作为程序执行的最大时间。

原创粉丝点击