我希望在实时操作系统中分析一些代码,RTEMS
. 本质上,rtems 有一堆函数可以读取时间,其中最有用的是rtems_clock_get_ticks_since_boot
.
这里的问题是,无论出于何种原因,报告的时钟滴答与我们的状态机循环速率同步,5kHz
而处理器运行在大约200MHz
(嵌入式系统)。我知道这一点,因为我记录了时钟时间,等了 1 秒,只有 5000 个滴答声过去了。
所以问题是:
如何从 RTEMS 获取实际的 CPU 滴答声?
PS。
clock()
来自 GNU C(有同样的问题)
有一个我一直在研究的指南,但我得到impossible constraint in asm
这表明我需要使用一些不同的汇编器关键字。也许有人可以指出我类似的东西?
语境
我想分析一些代码,所以本质上是:
start = cpu_clock_ticks()
//Some code
time = cpu_clock_ticks() - start;
代码在不到 0.125 毫秒内运行,因此clock()
和其他 rtems 函数获得的 8khz 计数器不会削减它。