P.3 实验:裸机 GPIO(无 OS)

L0-3

学习目标

GPIO 翻转加上忙等延时,看似闪烁,实际上 CPU 一直在空转计数;这是没有调度器时唯一的「延时」办法。

  • GPIO 输出:配置方向后写 0/1,电平变化可在仿真板上看到。
  • 忙等用循环消耗 CPU 周期来凑延时,期间什么任务都插不进来。
  • 忙等占用全部 CPU,也无法同时「延时还要看按键」。
  • 第三章的 LOS_TaskDelay 会将任务挂起并将 CPU 让予其他任务——对比本课方能理解 Delay 的价值。

做 · 实验

  • 编译 GPIO 实验,观察翻转节拍(仿真或串口节拍均可)。
  • 把忙等圈数改大或改小,描述肉眼或日志的变化。

打开工作台

代码导读

本课在工作台编译烧录。先读 user 实验入口,再对照 kernel / HDF 中被调用的函数,不要一上来改链接脚本。

总结与提升

  • 能解释忙等延时为什么占用 CPU。
  • 能口头对比:本课延时与后面任务 Delay。

延伸思考

  • 把延时做成阻塞,至少需要 OS 提供时钟、阻塞队列和调度中的哪几样?
  • 在实时系统里,长时间忙等会破坏什么指标?

← 本阶段封面 · 课程列表