【问题标题】:A way to measure execution time of a function on Cortex-m1一种在 Cortex-m1 上测量函数执行时间的方法
【发布时间】:2021-05-09 11:55:25
【问题描述】:

我正在寻找一种方法来测量一个函数在 arm Cortex-M1 上执行需要多少时钟周期。 关于该主题的文档不多,我发现的所有内容都是关于使用 DWT 的,而 DWT 没有在 Cortex-M1 上实现(至少我是这么认为的,我在技术参考手册中找不到)。

【问题讨论】:

  • 如果不使用分频时钟,systick 会给出与 DWT 相同的结果。如果实施了 systick。否则必须使用计时器
  • 也了解尝试使用高性能内核(如 arm)对 esp 进行时间编码的陷阱。单独对齐会对执行产生重大影响......
  • cortex-m1 表示您在 fgpa 中,对吗?只需添加您自己的计时器,或者只是在 sim 中运行代码并使用 sim 时钟计数器计算时钟
  • @old_timer 是的,我在 a7 上。我在哪里可以检查 systick 是否已实施?
  • 试着和它说话...看看它是否在那里...

标签: arm timing cortex-m


【解决方案1】:

如果存在 systick 计时器,并且如果您为其提供与系统时钟相同的时钟,它将为您提供与 DWT 相同的结果。如果它是一个分频时钟,它仍然会提供有用的信息。请注意,代码对齐等简单的事情可能会对代码的性能产生巨大影响。

如果您没有 systick 计时器,您可以尝试使用计时器外围设备。作为 cortex-m1,您可以添加一个简单的计数器并将其添加到地址空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 2023-04-07
    • 2011-09-09
    • 2023-03-09
    相关资源
    最近更新 更多