我正在开发一个带有 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