全志D1-H 双屏异显第一弹来啦 D1同时支持两个屏幕,一边做UI交互,一边播放视频

2024-02-02 15:18:00 浏览数 (2)

1文档中有功能:双屏同显!具体操作见文档:https://d1.docs.aw-ol.com/source/3_getimg/ 双屏同显测试固件:https://www.aw-ol.com/downloads/resources/38

继上述固件之后,因为小项有需求,同显固件无法满足。故有双屏异显第一弹:

  1. mipi显示GUI,HDMI播放动画。 下图是演示效果。(视频效果可以点此查看)
在这里插入图片描述在这里插入图片描述

异显固件: tina_d1-nezha_uart0_yixian.img

操作过程

  1. 更改设备号
代码语言:javascript复制
# 目录 d1-tina-open/package/allwinner/libuapi/src/videoOutPort.c
# 调转一下默认屏幕输出
# 71 行
-#define SCREEN_0 0
-#define SCREEN_1 1
 #define SCREEN_0 1
 #define SCREEN_1 0
  1. 编译并烧录固件
代码语言:javascript复制
make -j32 && pack
  1. 启动设备,切换HDMI到屏幕1
代码语言:javascript复制
cd /sys/kernel/debug/dispdbg
echo disp1 > name; echo switch1 > command; echo 4 10 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;
  1. 使用tplaydemo 播放视频
代码语言:javascript复制
tplaydemo *****.mp4
  1. 启动LVGL控制UI
代码语言:javascript复制
./cardcamera

对于上述修改,在系统调试节点中查看可以看到:

代码语言:javascript复制
root@TinaLinux:/sys/devices/virtual/disp/disp/attr# cat sys
screen 0:
de_rate 300000000 hz, ref_fps:62
mgr0: 800x1280 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
        lcd output      backlight(100)  fps:62.5         800x1280
        err:1   skip:200        irq:18449       vsync:0 vsync_skip:0
   BUF    enable ch[1] lyr[0] z[16] prem[N] a[pixel 255] fmt[  0] fb[ 800,1280; 800,1280; 800,1280] crop[   0,1280, 800,1280] frame[   0,   0, 800,1280] addr[ff800000,       0,       0] flags[0x       0] trd[0,0]
depth[ 0] screen 1:
de_rate 300000000 hz, ref_fps:60
mgr1: 1920x1080 fmt[rgb] cs[0x101] range[limit] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
        hdmi output mode(10)    fps:60.6        1920x1080
        err:0   skip:4  irq:14742       vsync:0 vsync_skip:0
   BUF    enable ch[0] lyr[0] z[0] prem[N] a[globl 255] fmt[ 77] fb[ 992, 736; 496, 368; 496, 368] crop[   0,   0, 976, 720] frame[   0,   0,1920,1080] addr[fe800000,fe8b2400,fe8ded00] flags[0x       0] trd[0,0]
depth[ 0] root@TinaLinux:/sys/devices/virtual/disp/disp/attr#

此时系统中有两个屏幕。

但此时HDMI仅仅只创建了一个图层。 mipi则被加入到了framebuffer中。

以上就是双屏异显固件测试及使用的方法,大家能否基于此想到更多有趣的玩法,欢迎评论回帖催更。

原贴链接:https://bbs.aw-ol.com/topic/362/

0 人点赞