基于ARM内核目标系统中的代码运行时间测试
值得一提的是,刚开始实验时,被加密字符串分别取为190字节和75字节,测得耗时分别是34 032 μs和16 928 μs,显然与倍增的关系相差很远。分析程序后发现,原来问题出在加密算法中间的打印语句“Uart_Printf("counting begin...!!!")”上。原来以为它耗时很少,故没有将它从加密算法中移走;移走后再试,耗时大减,分别为29 600 μs和12 496 μs,与字符数倍增、时间倍增的预期基本相符。上面的实验,还使笔者得知该打印语句占用了4 432 μs。稍微修改条件,继续实验: 当上述打印语句的字节数扩充为原来的4倍时,测得该语句耗时17 728 μs。可见,耗时与打印内容的字节数基本上成正比;另外,这种打印语句与加密/解密算法本身相比,并不是想当然地只占用一点点时间。(上述数据与PC机串口通信波特率的设置无明显关系。实际测试结果为: 波特率由115 200 bps下降到57 600 bps,没有可以察觉到的差别。)
3、测量方法讨论
ARM内置看门狗用作时间度量的适用范围,大体以μs数量级为界。比如,从S3C44B0X的器件特性说明中可知,MCLK在看门狗计时器里的分频比至少是1/16。典型情况下,MCLK=60 MHz,则看门狗能够分辨的最短时间单元t=1/(60 MHz/16)=0.27 μs。统计误差约为t/2,即0.1μs数量级。就μs级的时间测量精度而言,相对误差有可能达到1%~10%;不过,这对很多速度估算的场合来说还是可以接受的。如果被测时间在10 μs以上,那就没有任何问题,可以认为是相当精确的了。
这种思路还可用来实现精确延时,因为它的定时不依赖于指令执行时间(指令执行要受到系统调度等的影响,因而有很多不确定因素),而取决于对主时钟的硬件分频计数。
由此实验推广,ARM内置看门狗可以作为此类系统中的第二时钟存在。对于那些时间要求精确到μs、RTC的精度无法满足的应用,这种处理都不失为一种准确、高效的方法。
参考文献:
[1].S3C44B0Xdatasheethttp://www.dzsc.com/datasheet/S3C44B0X_589522.html.
[2].1/16datasheethttp://www.dzsc.com/datasheet/1%2f16_2510134.html.
- 结构化ASIC平台设计要点分析(06-05)
- ARM内核和架构都是什么意思,它们到底是什么关系?(11-22)
- ARM 内核SP,LR,PC寄存器(11-21)
- ARM 内核移植中常见的错误(11-11)
- 决定ARM内核MCU性能和功耗主要因素浅析(11-24)
- 一种基于ARM内核SoC的FPGA 验证环境设计方法(11-13)