晕哥,我想把我们的FrameBuffer的BitPerPixel改成16位深,在哪里改靠谱一点?主要是内核的帧缓冲。外面物理接口是666,逻辑层的是32位。想把它改成16位。谢谢。
离线
没试过, 不知道改 u-boot 的参数有没有用:
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:27000,le:87,ri:40,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0"
=>
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:16,pclk_khz:27000,le:87,ri:40,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0"
离线
改了。没用。32是逻辑层面的。
离线
https://www.kernel.org/doc/Documentation/devicetree/bindings/display/simple-framebuffer.txt
chosen {
framebuffer0: framebuffer@1d385000 {
compatible = "simple-framebuffer";
reg = <0x1d385000 (1600 * 1200 * 2)>;
width = <1600>;
height = <1200>;
stride = <(1600 * 2)>;
format = "r5g6b5";
clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
lcd-supply = <®_dc1sw>;
display = <&lcdc0>;
};
stdout-path = "display0";
};
这坑没挖过, 你看下按上面这样改dtsi/dts, 试一试行不行.
离线
好
离线
好
楼主你好,最终有修改成功吗?我现在也想要将frambuffer改成16bit的
离线
因为这个芯片也是32位的,内存也是32位,现在要把帧缓冲改成16位的,那不是还要做一次转换,不会更慢吗?
最近编辑记录 cube (2022-03-05 11:54:07)
离线