P.4 实验:裸机读 B1(无 OS)
L0-4
学习目标
B1 是 GPIO 输入;裸机用循环反复读电平。这是输入外设的最简路径,后面会变成 HDF Dispatch,再变成 UI 任务。
- 输入要先配置方向与上拉/下拉,再读数据寄存器。B1 对齐 Mixly 的板载用户键。
- 轮询:主循环每次都读,按下就打印。实现简单,CPU 一直醒着。
- 机械按键有抖动:一次按下可能读到多次跳变,可用短延时或计数消抖。
- 中断把变化变成异步事件,第六章再展开;本课只要轮询能区分按下与松开。
代码导读
本课在工作台编译烧录。先读 user 实验入口,再对照 kernel / HDF 中被调用的函数,不要一上来改链接脚本。
总结与提升
- 按下与松开可以区分,不是随机乱报。
- 能说明本实验仍是裸机轮询,没有中断向量。
延伸思考
- 消抖应放在应用还是驱动?给出你会选的一种理由。
- 若要同时闪灯和读键,裸机死循环怎么排?这会把你推向调度。