P.2 实验:裸机串口(无 OS)
L0-2
学习目标
没有操作系统时,启动代码设置栈并关掉看门狗后,main 就可以直接操作 UART;串口一行字是整门课最重要的「活着」证明。
- 复位后 CPU 从链接脚本规定的入口执行:关 WDT、设栈,再进 C 的 main。任何内核都建立在这条链路上。
- UART 按波特率发送字节;配置引脚后往发送寄存器写数据,PC 或工作台串口就能看见。
- 本实验没有任务、没有 Delay、没有 HDF:输出可以是死循环加忙等。
- 同一颗 UART 在第六章会改成经 HDF 服务 uart0 访问;对比两次日志,才能体会驱动框架挡住了什么。
代码导读
本课在工作台编译烧录。先读 user 实验入口,再对照 kernel / HDF 中被调用的函数,不要一上来改链接脚本。
总结与提升
- 串口有稳定、可重复的输出,而不是乱码或空白。
- 能指出本实验不包含任务创建、Delay 和设备表。
延伸思考
- 若同时执行两段死循环打印,字符会怎样交织?这暴露了什么资源竞争?
- 本课的打印是直接写寄存器,还是已经走了完整 libc 缓冲?