查看: 5|回复: 0

单片机凭什么能同时跑多个任务?聊聊RTOS调度

[复制链接]
发表于 昨天 08:05 | 显示全部楼层 |阅读模式
⏱️ 单片机主频不到一百 MHz,凭什么能"同时"跑按键、屏幕、通信好几件事?聊聊 RTOS 的任务调度。
🔍 裸机和 RTOS 差在哪
裸机大循环是一件做完再做下一件,急事也得排队;RTOS 把功能拆成一个个任务,由内核统一安排谁上 CPU,毫秒级来回切换。
🧵 调度怎么排班
  • ✔ 每个任务有优先级,高优先级先跑
  • ✔ 同优先级按时间片轮转,雨露均沾
  • 🔒 任务间用队列、信号量通信,不抢地盘

阻塞式的写法让 CPU 没事干时去休眠,功耗也顺带降了。
✅ 用 RTOS 的代价
每个任务有自己的栈,分小了溢出、分大了浪费 RAM;优先级设计不当会饿死低优先级任务;还有优先级反转这种经典坑,互斥锁用不好就翻车。所以小项目裸机够用时,也别盲目上 RTOS。


一句话总结:RTOS 让单核 CPU 高速轮转,制造出"同时"的错觉。

💬 互动一下:你项目用 FreeRTOS 还是 RT-Thread?任务优先级是怎么划分的?评论区见。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
免责声明|Archiver|手机版|小黑屋|半导贴吧

相关侵权、举报、投诉及建议等,请发 E-mail:1152577621@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|渝ICP备2024033348号|渝ICP备2024033348号-1

在本版发帖
关注公众号
QQ客服返回顶部