FB模块调试
1. cat¶
-
调试信息
# cat /proc/mi_modules/mi_fb0 ############################ 13.1.1. OnDumpOSDAttr#################################### Framebuffer id = MStar FB0 xres=1280, yres=720 xres_virtual=1280, yres_virtual=1440 xoffset=0,yoffset=0 fix.line_length=0xa00 Bytes fix.smem_start=0xf800000 Memory Size=0x400000 Bytes Gop ID=0 Gwin ID=0 Open Count=1 Visible State=0 MIU Sel=0 ColorSpace=YUV ColorFomrmat=ARGB1555 StretchWindow Pos[0,0] StretchWindow Src[1280,720],StretchWindow Dst[1920,1080] Gwin Pos[0,0] Gwin Size[1280,720] Gwin PhyAddr=0x0 ColorKey Enable=0 ColorKey Val=[0,0,0] Enable Alpha Blend=1 Enalbe Multi Alpha=0 Global Alpha Val=0x0 Alpha0=0x0,Alpha1=0x0,(Only for ARGB1555) GOP Hstart=192 Current TimingWidth=1920,TimingWidth=1080,hstar=192 ################################## 13.1.1.1. end########################################## #########################OnDumpHwcursorAttr#################################### Cursor Gop ID=4 Cursor Gwin ID=6 Cursor MIU Sel=0 Cursor PhyAddr=0x166000 Cursor ColorFmt=ARGB8888 Cursor Icon Width=44,Height=56 Cursor HotSpot[18,9] Cursor request pos[712,207] Cursor Visible=1 Cursor Gwin Pos[694,198] Cursor Gwin Size[44,56] Cursor Gwin Pitch=0x200 Bytes Curosr StretchWindow pos[0,0] Cursor StretchWin Src[1280,720],Dst[1920,1080] Cursor ColorKey Enable=0 Cursor ColorKey Value=[0xff,0xff,0xff] ############################OnDumpHwcursorAttr#################################
-
调试信息分析
记录当前Fbdev && Hwcursor的使用状况以及OSD图层属性、OSD device属性、Hwcursor属性,可以动态地获取到这些信息,方便调试和测试。
-
参数说明
参数 描述 OSD info Framebuffer id Framebuffer设备ID xres 可见分辨率宽度 yres 可见分辨率宽高度 xres_virtual 虚拟分辨率的宽度 yres_virtual 虚拟分辨率的高度 xoffset 可见分辨率到虚拟分辨率的x偏移量 yoffset 可见分辨率到虚拟分辨率的y偏移量 fix.line_length 虚拟分辨率每行的字节数 fix.smem_start 帧缓冲内起始地址 Memory Size 帧缓冲内存长度,单位字节数 OSD device info Gop ID 图层硬件ID Gwin ID 图层硬件显示窗口ID Open Count 该图形层打开次数。在用户调用open()时增1;调用close()时减1 Visible State 该图层显示状态。
取值:{1表示可见,0表示不可见}
用户显示调用FBIOSET_SHOW去设置图层可见状态。MIU Sel 保存帧缓冲数据的物理内存编号。
对于MSR620设备该值为0ColorSpace 该图形层输出的颜色空间。
取值:{YUV表示输出YUV color space;RGB表示输出RGB color space }。默认为YUVColorFomrmat 图形层格式
取值:{ARGB1555,ARGB4444,ARGB8888,RGB565}。
用户设置可变屏幕信息中的格式项后更新StretchWindow Pos 图形层在显示设备上的起始位置。
单位:像素
默认为0,用户可调用FBIOSET_SCREEN_LOCATION去设置StretchWindow Src 图形层原始分辨率的宽度和高度。
单位:像素
通过硬件放大功能放大到当前timing。用户设置可变屏幕信息中的可见分辨率后更新StretchWindow Dst 图形层在显示设备上的宽度和高度。 默认设置为输出timing大小。可以通过FBIOSET_SCREEN_LOCATION去设置 Gwin Pos 图形层显示窗口的起始位置
单位:像素
对于OSD图层来说,该值总是为(0,0)Gwin Size 图形层显示窗口的宽度、高度。
单位:像素
对于OSD图层来说,该值总是被设置为可见分辨率的宽度、高度。用户设置可变屏幕信息中的可见分辨率后更新。Gwin PhyAddr 图形层当前显示数据的物理地址 ColorKey Enable 图形层ColorKey是否使能
取值:{0表示Disable ColorKey; 1表示Enable ColorKey}用户设置可通过FBIOSET_COLORKEY去设置ColorKey Val 图形层ColorKey的RED,GREEN,BLUE通道数值
取值:每个通道的取值范围从0-255。ColorKey val的数值用RGB888格式表示
用户可通过FBIOSET_COLORKEY去设置后更新Enable Alpha Blend 图形层alpha是否使能。
取值:{0表示否,1表示是}, 默认为1。
用户可通过FBIOSET_GLOBAL_ALPHA去设置后更新。
该项关闭,则像素alpha配置不生效。该项开启且Enable Multi Alpha关闭,仅像素alpha生效(对于ARGB1555格式,Alpha bit为1的像素使用Global Alpha作为像素alpha,Alpha bit为0的像素使用0xff作为像素alpha)。当该项目开启且Enable Multi Alpha生效时,则像素alpha和Global Alpha都生效Enable Multi Alpha 全局alpha是否生效开关
取值{0时,1否}默认值为0
Enable Multi Alpha使能,Global Alpha便生效Global Alpha Val 全局Alpha Alpha0 ARGB1555格式时,当最高位为0时,选择Alpha0作为Alpha混合的的Alpha数值
取值: 0~255默认为0Alpha1 ARGB1555格式时,当最高位为1时,选择Alpha1作为Alpha混合的Alpha数值
取值: 0~255默认为0GOP Hstart 图层硬件向对于显示窗口的偏移。
取值:该值和当前输出timing相关,当输出timing发生变化时,通过FBIOSET_DISPLAYLAYER_ATTRIBUTES并将输入参数MI_FB_DisplayLayerAttr_s的u32SetAttrMask数值包含E_MI_FB_DISPLAYLAYER_ATTR_MASK_SCREEN_SIZE mask位来通知图层驱动输出timing发生变化。图层驱动会根据当前timing设置相应的hstart数值Current TimingWidth, 当前输出timing的宽度、高度以及当前timing下应该给图形层硬件设置的像对于显示窗口的偏移。 该项与GOP Hstart配合使用,用于检查设置给硬件图层的hstart数值是否和当前timing一致。 Current TimingHeight, hstar Hwcursor info Cursor Gop ID 鼠标图层硬件ID Cursor Gwin ID 鼠标图层硬件显示窗口ID Cursor MIU Sel 用于保存鼠标图标数据的物理内存编号。 对于MSR620设备该值为0 Cursor PhyAddr 鼠标层当前显示数据的物理地址 Cursor ColorFmt 鼠标图层格式
值:{ARGB1555,ARGB4444,ARGB8888,RGB565}。
用户可通过FBIOSET_CURSOR_ATTRIBUTE 设置Cursor Icon Width 鼠标图标的宽度、高度。
单位:像素
户可通过FBIOSET_CURSOR_ATTRIBUTE设置Cursor HotSpot 鼠标图标的热点信息
单位:像素
热点信息通常和鼠标图标相关,用户可通过FBIOSET_CURSOR_ATTRIBUTE设置Cursor request pos 鼠标图标的位置信息
单位: 像素
用户通过FBIOSET_CURSOR_ATTRIBUTE设置Cursor Visible 鼠标图层是否可见
取值:{0,表示不可见,1表示可见}
用户通过FBIOSET_CURSOR_ATTRIBUTE设置Cursor Gwin Pos 鼠标图层显示窗口的起始位置
单位:像素Cursor Gwin Pitch 鼠标图层每行的字节数。
对于鼠标图层来说,该值固定为0x200Curosr StretchWindow pos 鼠标图层在显示设备上的起始位置。
单位:像素Cursor StretchWin Src 鼠标图层原始大小
单位:像素。该值通常和OSD的显示分辨率一致。Cursor StretchWin Dst 鼠标图层在显示设备上的宽度、高度
该值和输出timing一致。Cursor ColorKey Enable 鼠标图层ColorKey是否使能
取值:{0表示Disable ColorKey; 1表示Enable ColorKey}。
用户通过FBIOSET_CURSOR_ATTRIBUTE设置Cursor ColorKey Value 鼠标图层ColorKey的RED,GREEN,BLUE通道数值
取值:每个通道的取值范围从0-255。ColorKey val的数值用RGB888格式表示
用户可通过FBIOSET_CURSOR_ATTRIBUTE去设置后更新
2. echo¶
功能 | 打开或关闭指定的图层 |
---|---|
命令 | echo GUI_SHOW [LayerID] [Status] > /proc/mi_modules/mi_fb0 |
参数说明 | [LayerID] 图层号 |
[Status] on: 打开; off: 关闭 | |
举例 | echo GUI_SHOW 0 on > /proc/mi_modules/mi_fb0 显示图层fb0 echo GUI_SHOW 0 off > /proc/mi_modules/mi_fb0 显示图层fb0 |
功能 | 打开或关闭硬件鼠标 |
---|---|
命令 | echo CURSOR_SHOW [Status] > /proc/mi_modules/mi_fb0 |
参数说明 | [Status] on: 打开; off: 关闭 |
举例 | echo CURSOR_SHOW on > /proc/mi_modules/mi_fb0 显示鼠标图标 echo CURSOR_SHOW off > /proc/mi_modules/mi_fb0 关闭鼠标图标 |
功能 | 为指定的图层设置Colorkey |
---|---|
命令 | echo GUI_SET_CLRKEY [LayerID] [Red] [Green] [Blue] > /proc/mi_modules/mi_fb0 |
参数说明 | [LayerID] 图层号 [Red] 红色分量 以16进制,ARGB888 格式表示 [Green] 绿色分量 以16进制,ARGB888 格式表示 [Blue] 蓝色分量 以16进制,ARGB888 格式表示 |
举例 | echo GUI_SET_CLRKEY 0 ff 00 00 > /proc/mi_modules/mi_fb0 设置fb0的Colorkey为红色 |
功能 | Dump当前正在显示的鼠标图标 |
---|---|
命令 | echo CURSOR_DUMP [Path] >/proc/mi_modules/mi_fb0 |
参数说明 | [Path] dump 的路径 |
举例 | echo CURSOR_DUMP /mnt > /proc/mi_modules/mi_fb0 dump cursor Icon到/mnt路径,文件名为CursorData.raw,用7yuv打开,宽高设置为128,128,格式按照cursor icon的格式设置即可显示Rawdata |
功能 | 分别为ARGB1555格式的alpha bit0,alpha bi1设置pixel alpha数值。因为目前msr620不支持这个feature,暂时未实现 |
---|---|
命令 | echo GUI_SETALPHA_ARGB1555 [LayerID] [Alpha0] [Alpha1]> /proc/mi_modules/mi_fb0 |
参数说明 | [LayerID] 图层号 [Alpha0] alpha0 的数值 [Alpha1] alpha1 的数值 |
举例 | 无 |