帧缓冲区驱动程序 (altfb) 不适用于 24 位显示器

帧缓冲区驱动程序 (altfb) 不适用于 24 位显示器

我正在开发一个带有 24 位 LCD 显示屏的嵌入式 Linux 系统。我使用terasic linux-socfpga来编译内核,我想使用altfb驱动程序在LCD中显示桌面。为此,我复制了 Linux 驱动程序(https://github.com/coliby/terasic_MTL/blob/master/drivers/video/altfb.c)到我的内核代码,然后我成功编译了代码。但显示器无法正常工作。

经过几天的尝试,我成功显示了桌面,但像素值显示不正确。最后,我成功地显示了如下图所示的内容。为此,我将代码更改为

writel(fbdev->info->var.xres * fbdev->info->var.yres/(fbdev->mem_word_width/32)

writel(fbdev->info->var.xres * fbdev->info->var.yres/(fbdev->mem_word_width/24)

但显示屏显示如附图所示。感谢任何解决问题的帮助。 在此输入图像描述

https://rocketboards.org/foswiki/Projects/TouchScreenLCDForAlteraSoC

https://github.com/coliby/terasic_MTL/blob/master/drivers/video/altfb.c

相关内容