【问题标题】:Benchmarks on baremetal systems裸机系统基准
【发布时间】:2017-07-28 07:44:51
【问题描述】:

我正在使用具有 cortex-m4/m0 的 LPC43xx 系列。这是一个裸机系统。我是裸机编程的新手,我想为性能评估制作小型基准程序。这是一个非缓存系统。我怎样才能做到这一点 ?还是我应该尝试分析。

【问题讨论】:

  • 没有缓存可以大大提高结果的质量。
  • 谢谢大家的回答。我的系统没有缓存 :) 使用 Dhrystone 时,我不确定该代码是如何工作的,只能在一个内核或两个内核上工作。可以实现哪些其他类型的参数:我希望内存带宽、内存延迟、cpu 性能等等。所有这些都可以使用线程来测量吗?是否可以实现 RTOS 并使用 Pthreads。由于裸机不带线程。
  • 非常感谢您的支持,我猜包括RTOS可能会降低系统的性能。
  • 是的,这是真的.. 对我来说,这就像对位于同一芯片内的两个单核进行基准测试!这就是为什么我想知道是否有任何双重工作的方法

标签: arm benchmarking cortex-m bare-metal thumb


【解决方案1】:

据我所知,在您的情况下,可以通过三种方法来衡量代码执行时间:

  • 定时器(在你想要的频率上初始化定时器,在代码执行前后读取定时器值)

  • gpio(或类似的东西)在代码执行之前将其设置为 1,在代码执行之后将其设置为 0, 用示波器测量时间

  • 嵌入到 CPU 中的性能计数器,在你的情况下,我认为这个相关: Cycle counter on ARM Cortex M4 (or M3)?

【讨论】:

  • 两个核心都在执行任务时是否可以使用这些?
  • @Kael timer 和 gpio 应该适用于两个核心案例,关于 cpu 计数器你应该仔细阅读 cpu 文档。
  • @PeterJ 我用过所有这些,我想你错过了重点。它不是用于分析(寻找热点),而是用于小算法的基准测试。就像冒泡排序和快速排序一样。
  • @PeterJ 你真的不明白这个嵌入式系统软件中获胜的算法吗?
  • @fghj 我已经同意你了,我不明白,不知道......
猜你喜欢
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 2019-08-09
  • 2019-11-06
相关资源
最近更新 更多