如何在裸机ARM组装中使用键盘?

How to use the keyboard in bare metal ARM assembly?

我正在编写我的第一个 Forth(在 ARM 上)。我希望它在裸机上运行,​​因为我认为这是 Forth 的全部意义所在。但是,我无法找到有关如何在没有 Linux 系统调用的情况下编写 KEY、EMIT 和朋友(本质上,处理键盘)的信息和示例。 我还尝试阅读引导加载程序源代码 (U-Boot),但这显然超出了我的理解范围。

你能帮我在裸机 ARM 程序集中编写键盘处理程序循环和 REPL 吗? ,但对于 ARM。我正在使用 Cortex-A8 CPU (ARMv7)。

鉴于您的目标是 BeagleBone Black(在评论中提到),我假设您正在考虑 USB 键盘。如果是这样,old_timer 关于您是 'confusing what baremetal is' 的评论是完全正确的。如果你真的在裸机上编码,那么你没有 USB 驱动程序堆栈,所以你不会从 USB 键盘读取。

您选择使用的任何引导加载程序都可能包含板上硬件组件的驱动程序,但这样您就不再真正使用裸机了。

如果你想坚持使用裸机,你将直接与硬件外围设备交互,到目前为止,最简单的通信外围设备是串行端口 (UART),你可以从另一台机器连接到它.这也将解决您没有提到但可能比输入问题大得多的输出问题(从裸机驱动屏幕是一个挑战!)。