1

我正在尝试找到一种方法,使用 xilkernel 将函数的计算时间增加到 1 秒,而不使用 xilinx microblaze 中的 sleep 函数。

因此,我是否知道在一个简单的 for 循环中需要进行多少次迭代才能将计算时间增加到 1 秒?

4

1 回答 1

1

你不能可靠而准确地做到这一点。如果你想做这样的事情,你必须为你的特定系统自己校准它,因为 Microblaze 是如此可配置,没有一个正确的答案。身体的方式是:

设置一个 GPIO 外设,将其中一个引脚设置为“1”,运行 1000 次迭代的循环(确保编译器不会优化它!)将引脚设置为“0”。将示波器挂在该引脚上(您正在嵌入式系统上工作,您确实有示波器,对吗?)并查看运行循环需要多长时间。


但正确的做法是使用硬件定时器外设。即使在一个非常简单的级别上,您也可以在函数开始时清除计时器,然后在结束时轮询它,直到它达到对应于 1 秒的任何值。这仍然会有一些缺陷,但鉴于您尚未指定需要接近 1 秒,这可能就足够了。

于 2013-09-13T10:58:14.397 回答