描述
我试图在ZYNQ上在Linux上标出我的应用程序,但是我总是看到我的应用程序的运行时间为0。
为什么会发生这种情况?
解决方案
对于非常简单的应用程序(例如“Hello World”),应用程序的整个运行时寿命可能低于ZYNQ TTC(ZYNQ Linux的主系统计时器)的最小分辨率。
如下图所示,三重计时器计数器由CPUY1X计时。
考虑CPU1X时钟运行在111MHz。
按照ZYNQ TRM,这个值可以在2-655 36之间(它必须是2的功率)。
默认情况下,Cadence TTC模块将此预标量值设置为2048。
预缩放后,16位计数器的时钟为111/2048=54.9kHz。
这意味着计数器在一秒钟内计数高达54199个值。
也就是说,每个计数增加大约在18US。
计数器是16位(0xFFFF=65535)。
所以,实际上需要1.209秒才能计数到0xFFFF。
注释:
改变预缩放器值是用户的责任。
请注意,在更高的分辨率下,Linux可能会错过时间包,从而影响整个系统的时序。
没有回复内容