Framebuffer DISP配置
1. FB环境配置¶
1.1. 配置脚本¶
FB相关配置在project/board/m6/$BOARD_NAME/config/fbdev.ini
中。
板子的目录为/config/fbdev.ini
。
相关配置信息如下:
# FBDEV 将会根据[FB_DEVICE]项目的定义生成fbdev设备节点 # 可以有多个[FB_DEVICE],并生成多个fbdev设备节点 [FB_DEVICE] # 该fbdev使用的gop(graphic hardware) ID FB_HWLAYER_ID = 1 # fbdev的framebuffer使用的gop graphic window ID FB_HWWIN_ID = 0 # gop 输出的叠加位置设定 (support chip: p3 0 / 1) FB_HWLAYER_DST = 0 # 该fbdev的framebuffer使用的颜色格式 # RGB565 = 1 # ARGB4444 = 2 # ARGB8888 = 5 # ARGB1555 = 6 # YUV422 = 9 # I8 = 4 # I4 = 13 # I2 = 14 FB_HWWIN_FORMAT = 5 # gop 输出的颜色空间设定 ( 0: RGB 1: YUV) FB_HWLAYER_OUTPUTCOLOR = 1 # 该fbdev的framebuffer的初始化xres FB_WIDTH = 1280 # 该fbdev的framebuffer的初始化yres FB_HEIGHT = 720 # 在自动获取到当前的显示timing之前,使用的初始化gop输出timing 宽 FB_TIMMING_WIDTH = 1920 # 在自动获取到当前的显示timing之前,使用的初始化gop输出timing 高 FB_TIMMING_HEIGHT = 1080 # 如果系统的mmap有layout项目为E_MMAP_ID_FB # 那么FBDEV的framebuffer 将使用此处的内存 FB_MMAP_NAME = E_MMAP_ID_FB # 如果系统的mmap没有为FBDEV layout一块内存 # 那么FBDEV的framebuffer将申请如下长度的内存作为framebuffer # FB_BUFFER_LEN >= xres*yres*bytesperpixel*displayBufCnt FB_BUFFER_LEN = 8192 #unit:Kbyte,4096=4M, fbdev.ko alloc size = FB_BUFFER_LEN*1024 # FBDEV 支持的硬件鼠标配置 [FB_CURSOR] # 鼠标层使用的gop ID FB_HWLAYER_ID = 0 # 鼠标层使用的gop graphic window ID FB_HWWIN_ID = 0 # gop 输出的叠加位置设定 (support chip: p3 0 / 1) FB_HWLAYER_DST = 0 # 鼠标层使用的颜色格式 # RGB565 = 1 # ARGB4444 = 2 # ARGB8888 = 5 # ARGB1555 = 6 # YUV422 = 9 # I8 = 4 # I4 = 13 # I2 = 14 FB_HWWIN_FORMAT = 6 # gop 输出的颜色空间设定 ( 0: RGB 1: YUV) FB_HWLAYER_OUTPUTCOLOR = 1 # 如果系统的mmap有layout项目为E_MMAP_ID_FB # 那么FBDEV的鼠标层 将使用此处的内存 # 如果系统的mmap没有为FBDEV layout一块内存 # 那么FBDEV的鼠标层将自己申请128K内存 FB_MMAP_NAME = E_MMAP_ID_HW_CURSOR # deprecated,fbdev 设备之间的z order(谁显示在上层或者下层) [LAYER_ZORDER] LAYER_ZORDER0 = 0 LAYER_ZORDER1 = 1 LAYER_ZORDER2 = 2 LAYER_ZORDER3 = 3 LAYER_ZORDER4 = 4
1.2. 注意¶
Framebuffer和Region模块使用的是同一套底层硬件,在同一个通道上,FB和Region可以混合使用,需要注意的是,FB使用最大的GWIN ID,则FB的内容永远在最底层显示,反之则在最上层显示。多个GWIN叠加不支持ALPHA叠加效果,如果上层的Region使用了Color key不显示且有与FB重叠的部分,则重叠部分不显示。
2. Demo测试¶
2.1. 代码位置¶
代码路径:sdk\verify\mi_demo\source\fb
。
2.2. 编译及执行¶
-
首先全编译一遍ALKAID,然后进入sdk/verify/mi_demo/source。
-
Make fb
-
编译成功后把
sdk\verify\mi_demo\out\demo\app\prog_fb
拷贝到板子。将/project/release/chip/m6/ipc/common/glibc/9.1.0/modules/4.9.227/fbdev.ko
拷贝到板子上 -
Insmod fbdev.ko
,执行./prog_fb
即可