作者:DayInAI 日期:20190124
一、RTMX
1)int de_rtmx_set_route(unsigned int sel, unsigned char pno, unsigned int zoder)
功能:设置blend通道的优先级。
参数:sel: 指定显示通道
Pno:pipe索引号
Zorder:z序。
返回:0成功,其他的为失败。
z序列的实现是通过blend通道和pipe的路由完成的。Pipe的z序是固定的,由0到3数字越大优先级越高,离人眼越近。如下图所示从低到高两个pipe做bld。
优先级越高的blend通道,选择优先级高的pipe通过,达到优先级调节的目的。比如4个图层,分别位于4个blending通道的4个图层,优先级从0到3越来越高,配置如下:
Channel 3 -> pipe3 ^
Channel 2 -> pipe2 |
Channel 1 -> pipe1 high
Channel 0 -> pipe0 |
如果想调节一下4个图层的优先级,跟之前完全相反,0最高,3最低,则路由所示:
Channel 0 -> pipe3 ^
Channel 1 -> pipe2 |
Channel 2 -> pipe1 high
Channel 3 -> pipe0 |
2)背景色:在rtmx中有几个颜色的设置背景色,blend通道的fill color,layer的fill color。背景色是整个de的底色,没有图层或者图层没有覆盖满全屏幕的地方才能显示 出背景色;blend通道的fill color是fill在背景色之上的,同时也在fill在blend通道中 未被图层覆盖的部分;layer的fill color是fill在整个layer之中的,即layer只显示单色 画面。三者之中,layer的fill color优先级最高,他会将与之区域相同的部分全部覆盖; 背景色的优先级最低,其上没被图层、blend通道覆盖的区域才能显示出来。
二、显示控制器开启/关闭流程
从disp_manage 到clk设置(rtmx),以及相应的参数设置,从底层到上层直到发送ready bit=1,并且mgr_sync、mgr_update_reg做相应的处理。
关闭与开启的流程相反,顺序相反、操作相反,所在的源文件与函数是类似的。
三、图层参数设置流程
图层设置从用户请求到新的图像帧显示到屏幕上需要经历几个环节,1用户请求的响 应,2垂直消隐区中断响应处理,3同步影子寄存器和寄存器的值,下面分别从3个环节进行描述。下面几幅图中上图是用户请求的响应,下左是中断响应的处理,下右是 start_delay到来时由硬件自动完成的同步操作。
Disp_mgr_appy会将manager和layer相关的参数都应用起来,分别对应的是底层的 disp_al_mgr_apply和disp_al_lyr_apply(再对应到de_al_lyr_apply),de_al_lyr_apply中将用户参数转换成底层的参数部分,关联的模块较多,计算也较多。
四、DE显示驱动代码分析
Disp_capture_info_list.h:图层参数:
disp:指定显示通道 data:图层配置信息 layer_num:图层数目
Alpha compositing:透明化 write back:回写设备
Scaler: 裁剪图层 channel:DMA通道 blending: 混合处理
DRC/smart backlight: 设备背光效果 CSC:设置格式转换
BSP_display.h:sunxi_disp_source_ops结构体:
LCD基本设置:延时、tcon、Cpu写入、背光PWM
函数声明:bsp_disp_init、bsp_disp_fest、bsp_disp_get_screen
AL:manager 管理,执行顺序如下:
Disp_al_manager_init->disp_al_manager_apply
->disp_al_manager_sync->disp_al_manager_update_reg
->disp_al_manager_exit
Enhance:增强效果
Disp_al_enchace_apply->disp_al_enhance_update_reg
->Disp_al_enchace_sync->disp_al_enchace_tasklet
Capture:获取截屏
Disp_al_capture_init->disp_al_capture_apply(重复更新参数、启动下一帧)
->disp_al_capture_sync->disp_al_capture_get_status(回写成功状态)
->disp_al_capture_exit
Smbl:智能背光
Disp_al_smbl_apply(更新请求)->disp_al_smal_sync(同步reg、要求跟manager)
->disp_al_smbl_update_reg->disp_al_smbl_tasklet(中断一小段)
->disp_al_smbl_get_status(获取亮点、调节幅度)
Rtmx参数: sel: 指定显示通道 chno: blend通道索引号 layno: 图层索引号
Fmt: 数据格式 crop:裁剪区 size:buffer的宽高 Align:buffer宽对齐长度
Trdinmode: 图像源的3D模式、左上右下 Addr:软件上层的每个layer申请的buffe Inmode:图像源的3D模式。