Как известно, загрузчик u-boot поддерживает своего рода «систему устройств ввода», которая позволяет регистрировать набор функций (например, getc, tstc, start и т. д.). Поэтому мне нужно реализовать свою собственную аппаратную «клавиатуру». Что я должен делать? Звучит просто:
1) Создайте как минимум функции "init", "tstc", "getc" и "start" в файле драйвера. 2) В «init» вызовите «stdio_register», чтобы сообщить системе о моем устройстве. 3) Вызвать драйвер "init" из моего пользовательского кода инициализации платы.
В чем проблема? К сожалению, это не работает. stdio_register возвращает 0 (вроде все ок), но "start", "tstc", "getc" никогда не вызывались. Я предполагаю, что делаю что-то не так, но я не могу понять: другие драйверы клавиатур, похоже, не содержат никакого дополнительного кода для регистрации клавиатуры. Кто-нибудь может сказать правду?
Или, может быть, мне просто взломать u-boot и вставить вызов опроса где-нибудь в main_loop? :)