页次: 1
大概查了一下全志的芯片,发现很少用drm显示框架的,都是用自研的disp框架,唯一的资料就是《Linux_Display_开发指南.pdf》,然而呢这个文档是个通用文档,实际上每颗芯片支持的显示接口和图层数量都不一样,具体的对应关系没法得知,如果用drm框架,modetest命令就能清晰查看整个显示框架之间的关系,但没办法,官方不适配DRM,图层处理又涉及一些硬件加速模块,咋也没能力适配。
有没有大佬对这个显示框架使用比较熟悉的?比如用T113S3这个芯片,至少是支持两个显示图层吧,那么显示接口是“/dev/fb0”,控制接口是"/dev/disp",常规用法就是往fb0推图显示,这样是显示在默认图层,如何实现推送fb0显示时指定显示在哪个图层?在DRM框架,图层是通过ZPOS属性控制层级顺序的,zpos大的覆盖zpos小的图层。是初始化两个/dev/fb0的句柄,然后在每次推送显示buf的时候都调用"/dev/disp"设置要显示在哪个图层吗?DRM框架是通过指定layer id来区分的。/dev/fb貌似没有指定显示ID的接口
为什么要纠结这个点?
主要是想做类似播放器的这种应用,LVGL UI+透明背景推送显示在上层,下层播放需要硬解码的视频,图片资源,因为把解码后的数据memcpy给lvgl的控件显示太低效了,SDK的lv_monitor有类似的功能,但是还是没有具体控制显示图层的代码,是直接调用了tplayer框架,还是不灵活。
我之前也是执着于研究怎么利用手机的配件,主要是屏幕和摄像头,相比摄像头来说,屏幕利用起来的可能性大一点,高分屏好几百,某宝手机高分屏100不到,找到一些驱动代码和引脚定义,发现一款手机通过显示屏一个ID引脚识别屏幕型号并加载对应的驱动,一款型号的手机竟兼容了5个型号的屏幕,这就不好买了,谁知道买了什么驱动IC的屏幕,利用摄像头更难了,有显示几百页的那种数据手册要有,其次要懂一些重要的寄存器含义,最后出图一般是RAW数据,偏绿的图像。要通过ISP调试,我了解的能买到的开发板最大isp也就rk的到1000多万像素,是处理不了这种4800W的手机摄像头的,当然对数据手册理解很熟练的话,可以调整寄存器,输出较小的分辨率,这样就能用上,总之很难,如果是在手机厂搞摄像头驱动的和搞isp调试的或许能搞定,我老大rk出来的,说他在rk的时候就是在帮国内某手机厂调当年主打拍照的那个手机的ISP
页次: 1