Учитывая, что ваша цель - BeagleBone Black (упоминается в комментарии), я предполагаю, что вы думаете о клавиатуре USB.Если это так, то комментарий old_timer о том, что вы «путаете, что такое baremetal», полностью верен.Если вы действительно программируете на голом металле, то у вас нет стека USB-драйверов, поэтому вы не собираетесь читать с USB-клавиатуры.
Возможно, что любой загрузчик вы выберетеУтилита может включать в себя драйверы для аппаратных компонентов на плате, но тогда вы больше не на голом металле.
Если вы хотите придерживаться голого металла, вы будете напрямую взаимодействовать с аппаратными периферийными устройствами, ибезусловно, самым простым коммуникационным периферийным устройством для работы является последовательный порт (UART), к которому вы можете подключиться с другого компьютера.Это также решило бы проблему вывода, которую вы не упомянули, но которая потенциально значительно больше, чем проблема ввода (управлять экраном из чистого металла - непростая задача!).