P.2 实验:裸机串口(无 OS)

L0-2

学习目标

没有操作系统时,启动代码设置栈并关掉看门狗后,main 就可以直接操作 UART;串口一行字是整门课最重要的「活着」证明。

  • 复位后 CPU 从链接脚本规定的入口执行:关 WDT、设栈,再进 C 的 main。任何内核都建立在这条链路上。
  • UART 按波特率发送字节;配置引脚后往发送寄存器写数据,PC 或工作台串口就能看见。
  • 本实验没有任务、没有 Delay、没有 HDF:输出可以是死循环加忙等。
  • 同一颗 UART 在第六章会改成经 HDF 服务 uart0 访问;对比两次日志,才能体会驱动框架挡住了什么。

做 · 实验

  • 在工作台编译本实验,确认串口有稳定的课程标识行。
  • 在代码里找到 UART 初始化与发送函数,标出引脚、波特率、发送字节三处。

打开工作台

代码导读

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

总结与提升

  • 串口有稳定、可重复的输出,而不是乱码或空白。
  • 能指出本实验不包含任务创建、Delay 和设备表。

延伸思考

  • 若同时执行两段死循环打印,字符会怎样交织?这暴露了什么资源竞争?
  • 本课的打印是直接写寄存器,还是已经走了完整 libc 缓冲?

← 本阶段封面 · 课程列表