选择Profiler->Start New Session,弹出Proliler session窗口,接受默认的名称MySession,确认。如果出现错误,可以禁用RTDX功能。
在MySession的窗口中,选择Ranges选项。 双击hello.c文件,在Project View中打开源文件。 高亮调用LOG_printf函数的语句。
用鼠标拖曳到MySession Profile窗口中。
MySession Profile窗口得到如下设置。时间的行号(line 28)可能会有所不同。
按下“Run”按钮,或按F5运行程序。
在MySession Profile窗口,观察Incl. Total column.(由于这个函数只执行一次,所以Total、Maximum和Minimum是相同的) The Incl.Total的含义:这个参数是用来表示从汇编指令执行到这一行的开始到执行结束所需要的指令周期数目。 比较LOG_printf()函数和puts()函数的指令周期数目。
结论:经过对比发现,LOG_printf()函数比puts()函数的效率高很
多。实际的指令周期数目和DSP芯片的型号有关。
调用LOG_printf()函数效率高的原因是字符串的格式化工作在主机(PC)完成,而不是目标板(DSP)上完成,所以说,LOG_printf()函数效率非常高。
4.实验内容及实验数据记录
1、打开已有的Hello World工程,评估stdio.h的运行效率,即put()函数的性能;
2、在Hello World基础上,创建一个基于DSP/BIOS的Hello World工程;
3、评估DSP/BIOS的输出函数性能,即LOG_printf()函数运行的指令周期。
5.实验程序或实验数据处理与分析
完成实验内容,运行成功,得到输出结果如以下表格: put()函数 运行一次所需要的指令周期数(单位:个) 1700 LOG_prinrt()函数 36 printf()函数 2255 分析:经过对比发现,LOG_printf()函数比puts()函数效率高很多。实际的指令周期数目和DSP芯片型号有关。
由于调用LOG_printf函数式字符串的格式化工作在主机PC完成,而不是在目标板DSP上完成的,所以调用LOG——printf函数效率高很多。
实验相关数据: 1)error
2)创建DSP/BIOS的配置文件
3)测试工程