我已经将一个新的 LCD 连接到我的嵌入式 Linux 设备上,当我运行系统时,我发现它向右移动。 (从LCD中间开始显示)
我在Linux内核驱动程序下找到了2个帧缓冲区驱动程序,并在以下方面进行了修改:
#ifdef CONFIG_TOPPOLY_TD035TTEA3_320X240
hsync_len : 64,
vsync_len : 6,
left_margin : 125,
upper_margin : 70,
right_margin: 115,
lower_margin : 36,
sync: 0,
cmap_static: 0,
#endif
但问题仍然存在。我应该怎么办?
答案1
在将值编码到内核之前,请使用交互式测试它们fbset
。您可以在生产中以这种方式从用户空间设置面板参数,但许多开发人员需要在启动初期打开屏幕。
要尽早设置这些已知的良好值,您可以将它们放入内核中。如果您在内核中放置的值似乎没有生效,则您可能没有修改设备的正确帧缓冲区描述。我经常在代码中引入语法错误并检查它是否无法编译 - 如果编译器忽略我的错误,我就知道该代码块已被配置禁用。
如果您找不到有效的设置,请查看面板和芯片中 LCD 控制器的数据表,以确保两者具有兼容的时序。