4

我希望在 LPC1343 上编写一些对时序非常敏感的代码,我需要在其中计算准确的时钟周期。有两个问题:-

  1. 我读过从内部闪存执行的代码并不总是能够以完整的 72Mhz 运行,并且可能会引入等待状态。但我找不到任何关于此的“官方”文件。我看到一个地方建议将时间敏感函数复制到 ram 中......我正在寻找被明确告知这不会发生,或者关于它如何影响时间的信息。

  2. 分支指令需要多长时间?我读到这个核心有分支预测,所以时间可能会有所不同。这是正确的,如果是的话,有什么方法可以预测它的行为,或者禁用它(因为准确的时间比为我节省几个时钟周期更重要) .

4

2 回答 2

2

Cortex-M3 的指令时序可从 arm.com 获得:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337g/BABBCJII.html

还有流水线操作,所以指令计数有点繁琐。

于 2010-07-26T15:23:14.707 回答
2

以下是 LPC11xx 和 LPC13xx 的一些真实世界调查:http://knowledgebase.nxp.com/showthread.php?t= 460

简而言之,没有“正确”答案,结果可能取决于闪存加速器设置、内存对齐、总线架构(neumann 与 harvard)、32 位与 16 位指令等。

于 2010-08-25T15:57:38.837 回答