原文链接: https://blog.csdn.net/lushengchu_luis/article/details/51339224
调试了两周,原厂sdk没写好,说多都是泪啊,双屏显示分3种模式。
这里的双屏是指lcd0,lcd1.这是A20芯片直接有引脚引出来的;不是指要通过什么HDMI或者VGA转过来的
1. 两个屏分别显示fb0, fb1内容;
2. 两个屏显示一样的内容fb0;
3. 一个屏显示fb0前半部分,另一个屏显示fb0后半部分
我项目中用到的是第3种,修改配置如下:
fex文件修改:
[disp_init]
disp_init_enable = 1
disp_mode = 3
screen0_output_type = 1
screen0_output_mode = 4
screen1_output_type = 1
screen1_output_mode = 4
fb0_framebuffer_num = 2
fb0_format = 10
fb0_pixel_sequence = 0
fb0_scaler_mode_enable = 0
fb0_width = 0
fb0_height = 0
这样修改后两个LCD的buf地址相同,所以都显示前半部分,后半部分显示不出来,修改drivers/video/sun7i/disp/dev_fb.c大概1624行位置,添加以下两行代码:
+ if (sel == 1 && (fb_para->fb_mode == FB_MODE_DUAL_SAME_SCREEN_TB))
+ layer_para.fb.addr[0] = (__u32)info->fix.smem_start + (xres*yres*4)/2;
意思就是把第二个LCD的buf地址往后移动半个buf位置,这样就能显示后半部分内容了
如下图所示:
离线