저는 24비트 LCD 디스플레이를 갖춘 임베디드 Linux 시스템을 개발 중입니다. terasic linux-socfga를 사용하여 커널을 컴파일하고 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