Skip to content

ChibiOS 性能与资源占用

liuzikai edited this page Jan 17, 2022 · 2 revisions

前置阅读:ChibiOS 线程编写

STM32F4 的计算资源还是很充足的,即使我们目前没有编译优化,CPU 占用率依然在可接受范围内,RAM 也较为充足。

由于嵌入式控制对实时性要求较高,CPU 占用率应保持在较低水平,允许任务被及时调度。在计算机网络中,当注入率(Injection rate,可以理解为网络负载)接近饱和时,网络延迟指数级上升,对于 RTOS 也应该有类似的规律。

当发现 Meta-Embedded 出现算力不足的问题时,优先开启编译器优化(O2)工具链 CMake 进阶配置 Build Type)。现代编译器优化能力很强,O2代码与O0代码性能相差十倍并不奇怪。

ChibiOS 自带资源使用监测,Meta-Embeeded 参考了 ChibiStudio 的性能报告插件,将其整合至 Shell 中。在 Shell 中输入 stats 指令:

Shell stats

stats 指令显示各线程的运行时间、CPU 占用、进程栈余量。主要关注 allfree stack 两项,前者可以理解为线程的 CPU 占用,后者是剩余线程栈空间大小(参见 ChibiOS 线程编写)。

main 和 idle 均可以当作空闲线程,两者 CPU 占用相加即是未使用的 CPU。

如果发现一个线程占用率接近 100%,而其他线程接近 0%,很可能是线程没有 sleep(常见问题 失去响应

更新历史

  • 2022.01.17 初始版本。liuzikai
Clone this wiki locally