确定µ的执行时间;控制器,使用普通PC

确定µ的执行时间;控制器,使用普通PC,c,C,我的电脑上运行着一个C程序(我运行Fedora并使用Eclipse)。 现在我需要知道/猜测,这段代码在µ控制器上的执行速度 我所做的: 我的第一次尝试是使用clock()函数。但通过这种方式,我也计算了很多时间,在这些时间里,我的操作系统正在做一些事情,比如加载一个库,分配内存。使用此方法测量的时间比所需的执行时间大几个数量级 为了更准确,我告诉自己有关分析。我安装并使用了Perf。现在这告诉我,我的程序在大约20000个循环/样本中运行。 这可能意味着执行时间不到一毫秒,而不是用上述方法测量

我的电脑上运行着一个C程序(我运行Fedora并使用Eclipse)。 现在我需要知道/猜测,这段代码在µ控制器上的执行速度

我所做的:
我的第一次尝试是使用clock()函数。但通过这种方式,我也计算了很多时间,在这些时间里,我的操作系统正在做一些事情,比如加载一个库,分配内存。使用此方法测量的时间比所需的执行时间大几个数量级

为了更准确,我告诉自己有关分析。我安装并使用了Perf。现在这告诉我,我的程序在大约20000个循环/样本中运行。 这可能意味着执行时间不到一毫秒,而不是用上述方法测量的秒数

我问自己:我的PC和µ控制器在一个周期内可以处理多少条指令。首先,我看了一下STM32F407IG和µ控制器的功能。 它有一个单精度浮点单元。因此,我确保只使用浮点(4字节)而不使用双精度,因为软件会模拟它们,这非常慢。 我程序中的主要操作是FFT。µ控制器应该能够很好地处理这一点,因为我有DSP指令(它们被设计成可以有效地执行FFT之类的操作)。它也以1.25 DMIPS/MHz作为基准标记。(Dhrystone 2.1)这意味着它可以很好地处理整数运算,并且在大多数情况下需要少于一个周期。

问题
µ控制器应该在大约或少于20.000个周期内处理我的程序,这是正确的吗
我可以假设执行时间是周期除以频率吗?或针对我的情况:20.000个周期/168 MHZ?
我只需要知道,这个粗略的猜测是否正确。我得不到确切的时间,这无关紧要


提前谢谢你

这不是一项简单的任务

第一:您的µC可能与您的PC具有不同的体系结构和不同的指令集。有些操作您的PC可以在一个周期内完成,而您的µC不能,而有些操作您的µC可能会表现得更好。您的PCs处理器有不同数量的寄存器,硬件中有SSE单元、浮点、CRC32等。您的µC可能有不同的DSP单元等

第二:对于这两种不同的体系结构,您可能会使用两种不同的编译器,它们也会实现特殊的优化

第三:内存行为:与µC相比,您的PC拥有巨大的缓存

回答你的问题:为了得到更可靠的估计,你需要在你的电脑上安装一个指令集模拟器。在模拟器中,执行时间要慢得多,但你可以很好地了解你的程序需要多少指令集。 再加上µC时钟速度和对程序并行性和缓存命中率的猜测,您就可以估计实际所需的时间


长话短说,在目标上描绘它

这不是一项简单的任务

第一:您的µC可能与您的PC具有不同的体系结构和不同的指令集。有些操作您的PC可以在一个周期内完成,而您的µC不能,而有些操作您的µC可能会表现得更好。您的PCs处理器有不同数量的寄存器,硬件中有SSE单元、浮点、CRC32等。您的µC可能有不同的DSP单元等

第二:对于这两种不同的体系结构,您可能会使用两种不同的编译器,它们也会实现特殊的优化

第三:内存行为:与µC相比,您的PC拥有巨大的缓存

回答你的问题:为了得到更可靠的估计,你需要在你的电脑上安装一个指令集模拟器。在模拟器中,执行时间要慢得多,但你可以很好地了解你的程序需要多少指令集。 再加上µC时钟速度和对程序并行性和缓存命中率的猜测,您就可以估计实际所需的时间


长话短说,在目标上描绘它

这不是一项简单的任务

第一:您的µC可能与您的PC具有不同的体系结构和不同的指令集。有些操作您的PC可以在一个周期内完成,而您的µC不能,而有些操作您的µC可能会表现得更好。您的PCs处理器有不同数量的寄存器,硬件中有SSE单元、浮点、CRC32等。您的µC可能有不同的DSP单元等

第二:对于这两种不同的体系结构,您可能会使用两种不同的编译器,它们也会实现特殊的优化

第三:内存行为:与µC相比,您的PC拥有巨大的缓存

回答你的问题:为了得到更可靠的估计,你需要在你的电脑上安装一个指令集模拟器。在模拟器中,执行时间要慢得多,但你可以很好地了解你的程序需要多少指令集。 再加上µC时钟速度和对程序并行性和缓存命中率的猜测,您就可以估计实际所需的时间


长话短说,在目标上描绘它

这不是一项简单的任务

第一:您的µC可能与您的PC具有不同的体系结构和不同的指令集。有些操作您的PC可以在一个周期内完成,而您的µC不能,而有些操作您的µC可能会表现得更好。您的PCs处理器有不同数量的寄存器,硬件中有SSE单元、浮点、CRC32等。您的µC可能有不同的DSP单元等

第二:对于这两种不同的体系结构,您可能会使用两种不同的编译器,它们也会实现特殊的优化

第三:内存行为:与µC相比,您的PC拥有巨大的缓存

回答你的问题:为了得到更可靠的估计,你需要在你的电脑上安装一个指令集模拟器。在模拟器中,执行时间要慢得多,但你可以很好地了解你的程序需要多少指令集。 连同