众所周知,u-boot loader支持某种"输入设备系统"允许注册一组函数(如getc,tstc,start等)。所以我需要实现我自己的硬件特定键盘"。我该怎么办?听起来很简单:
1)至少创建" init"," tstc"," getc"并且"开始"驱动文件中的函数。 2)在" init"打电话" stdio_register"让系统了解我的设备。 3)呼叫驱动程序" init"从我的自定义板初始化代码。
有什么问题?不幸的是,它不起作用。 stdio_register返回0(就像一切正常),但是"开始"," tstc"," getc"从未被称为。 我想我做错了什么,但我无法理解:另一个键盘驱动程序似乎不包含任何额外的键盘注册代码。任何人都可以说实话吗?
或许我应该破解u-boot并在main_loop中的某处插入轮询调用? :)
答案 0 :(得分:0)
听起来你已经创建了一个自定义设备驱动程序。
struct stdio_dev kon_dev
在U-Boot命令行尝试这样的操作,将控制台切换到自定义驱动程序
setenv stdin kon_dev
当然,在到达开心的地方之前,必须先调试自定义驱动程序。它可能不会第一次工作。
使用netconsole与您正在做的类似。使用netconsole,例如可以将stdout连续保持在串行设备上,将stdin切换到nc设备(即" setenv stdin nc&#34 ;,通过该netcat会话输入命令一段时间,然后切换stdin回到连续剧。