【发布时间】:2022-12-21 23:47:29
【问题描述】:
我正在尝试使用 CMSIS RTOS 对 Cortex M33 上的功能持续时间进行计时。我目前正在直接从 ARM_CM_DWT_CYCCNT 寄存器读取周期。
这是有效的,但我想知道我是否可以做任何其他事情来提高测量的精度/方差? IE。限制中断等?
一些第三方代码包括 int_lock() 和 int_unlock(lock) 的使用,但我找不到任何关于此用法的 CMSIS RTOS 文档。
【问题讨论】:
-
如果可以,请禁用中断。它不会造成伤害,并且可能有助于使结果更加精确。我假设这就是
int_lock()和int_unlock(lock)所做的。 -
如果您不知道他们做什么(即没有访问权限或文档或来源),那么最好避免使用它们。即使凭直觉你“知道”他们在做什么。有用于此的 CMSIS 原语,但如果您只是查看 CMSIS RTOS,那么您找错地方了。它们在 CMSIS CORE 中。
标签: arm benchmarking rtos cmsis