-
Notifications
You must be signed in to change notification settings - Fork 14
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
指令:
stats
指令显示各线程的运行时间、CPU 占用、进程栈余量。主要关注 all
和 free stack
两项,前者可以理解为线程的 CPU 占用,后者是剩余线程栈空间大小(参见 ChibiOS 线程编写)。
main 和 idle 均可以当作空闲线程,两者 CPU 占用相加即是未使用的 CPU。
如果发现一个线程占用率接近 100%,而其他线程接近 0%,很可能是线程没有 sleep(常见问题 失去响应)
- 2022.01.17 初始版本。liuzikai
- 基础知识
- 基础配置
- 进阶与参考