0

要停止自动引导,我们有 2 个 ifdef (CONFIG_AUTOBOOT_STOP_ [STR2 || STR1] )。这很容易实现。用单次“击键”或短语停止启动对用户来说有其自身的优势。但是,为什么忽略控制键支持,比如 [ctrl + anykey ] 组合。特别是,BIOS 供应商更喜欢至少同时按下 2 个或更多键来停止启动。避免这种情况的任何具体原因。除了简单之外,还有什么特别的理由坚持这一点。

4

1 回答 1

0

CTRL关键是修饰符。并且CTRL+KEY组合注册为普通KEY按下事件,并设置了其他标志以指示修饰键的状态。在Linux 内核键盘驱动程序文档中阅读有关键盘驱动程序中的修饰符的信息。

还可以查看这篇关于键盘工作原理的优秀文章。

处理所有修饰符需要代码中的额外复杂性。引导加载程序在严格受限的环境中运行。尤其是在嵌入式系统上(u-boot 的用途),期望整个 u-boot 在 64/128K 的 RAM(二进制 + 堆栈)内加载和运行是很常见的。

考虑到在我们需要使用修饰符之前,我们的键盘上有超过 50 个唯一键可以敲击,因此通常不会在 u-boot 中实现对它们的软件支持。

于 2013-08-05T09:56:14.827 回答