点屏程序说明
1. 点屏功能场景介绍¶
-
场景1:GUI rotate 功能演示
file -> gfx -> fb -> disp
gfx 读480x800 BGRA8888格式文件,对图片依次进行0/90/180/270度旋转且通过FB显示到GOP,可设置单/双buffer模式
-
场景2:GUI pattern 功能演示
gfx -> fb -> disp
gfx 绘制绿蓝红渐变三色图,且通过FB显示到GOP,可设置单/双buffer模式
2. 编译环境说明¶
这里以 Comake PI D1 开发板的 dispcam_pcupid.emmc.glibc-12.4.0-arm-squashfs.comake.pi.d1.1024.dual_sensor.bga_ddr4_riscv_defconfig 为例说明
Note
一般默认板端已经打包好了相应程序,因此程序编译并非必须。你可以直接在板端 /customer/sample_code/gfx_gfx_demo 文件夹中找到prog_gfx_gfx_demo。如果你没有找到文件或有自己修改程序的需求,可参考如下步骤。
-
在 project/board/pcupid/COMAKE-PI-D1/config/config_fb.json 中 disp_path 的参数修改为使用屏参,以720*1280为例:(下列参数解释可参照 MI FB API )
"fb_device_disp_path": [ { ... "fb_hwlayer_outputcolor": 0, "fb_width": 720, "fb_height": 1280, "fb_timing_width": 720, "fb_timing_height": 1280, "fb_mmap_name": "E_MMAP_ID_FB", "fb_buffer_len": 28800 } ],
-
配置屏幕dts
以Comake PI D1的defconfig + mipi屏为例,需在
kernel/arch/arm/boot/dts/pcupid-comake-pi-d1-dual-sensor-padmux.dtsi
中添加以下内容:#if 1 // MIPIDSI 4 LANE <PAD_OUTP_CH0 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_P_CH0>, <PAD_OUTN_CH0 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_N_CH0>, <PAD_OUTP_CH1 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_P_CH1>, <PAD_OUTN_CH1 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_N_CH1>, <PAD_OUTP_CH2 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_P_CH2>, <PAD_OUTN_CH2 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_N_CH2>, <PAD_OUTP_CH3 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_P_CH3>, <PAD_OUTN_CH3 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_N_CH3>, <PAD_OUTP_CH4 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_P_CH4>, <PAD_OUTN_CH4 PINMUX_FOR_MIPI_TX_MODE_1 MDRV_PUSE_TX_MIPI_N_CH4>, <PAD_GPIOD_01 PINMUX_FOR_I2C4_MODE_1 MDRV_PUSE_I2C4_SCL>, <PAD_GPIOD_02 PINMUX_FOR_I2C4_MODE_1 MDRV_PUSE_I2C4_SDA>, #endif
-
根据选择defconfig进行整包编译,并烧录到Comake PI D1的板端;
-
进到sdk/verify/sample_code目录执行
make clean && make source/pcupid/gfx/gfx_demo
进行编译; -
到
sample_code/out/arm/app/prog_gfx_gfx_demo
获取可执行文件,并将可执行文件放置到板端的/customer目录下; -
将可执行文件prog_gfx_gfx_demo放到板子,/customer/sample_code/gfx_gfx_demo路径上,修改权限777。
3. 运行环境说明¶
-
板端环境
COMAKE-PI-D1:
连接mipi屏和触摸板:在板端CON9与CON8 接口上插入触摸屏与MIPI屏FPC线
CON8 MIPI屏为FPC上接,注意不要接反,如下左图所示。
CON9 靠近屏幕侧为FPC下接,靠近主板侧为FPC上接,注意不要接反,如下右图所示。
Note
如果你下载使用的是我们提供的代码包且使用了例中的defconfig进行编译,那么以下bootargs配置和输入文件不用执行。
-
bootargs配置
从内存池中为 fb 单独划分内存使用,在uboot中进行环境变量配置:
setenv bootargs ${bootargs} mma_heap=mma_heap_fb,miu=0,sz=0x1D00000; saveenv;
-
输入文件
需要
source/pcupid/gfx/gfx_demo/resource/input/
路径下文件;将
resource
目录放置于板端与可执行文件prog_gfx_gfx_demo同一路径,demo会读取以下文件./resource/input/480x800.rgb ./resource/input/YUV420SP_320_240.yuv
4. 运行说明¶
执行 cd /customer/sample_code/gfx_gfx_demo
。到文件相应路径。
- 命令
./prog_gfx_gfx_demo 0 0/1(ttl/mipi) 0/1(single/double buffer)
运行场景1 gfx rotate 功能演示; -
命令
./prog_gfx_gfx_demo 1 0/1(ttl/mipi) 0/1(single/double buffer)
运行场景2 gfx pattern 功能演示;其中参数1代表要运行的demo场景,参数2代表显示屏幕类型,参数3代表fb是否运行双buffer模式。
若运行rotate场景,mipi屏幕,单buffer模式,可执行:
./prog_gfx_gfx_demo 0 1 0
5. 运行结果说明¶
-
效果查看
运行成功后两个demo将在屏幕上显示结果。
rotate场景:
-
板端测试命令
cd /customer/sample_code/gfx_gfx_demo/
./prog_gfx_gfx_demo 0 1 0
-
测试结果
程序正常启动,如果平台接入屏幕,会看到中间的红框图片旋转,如下图:
pattern场景:
-
板端测试命令
cd /customer/sample_code/gfx_gfx_demo/
./prog_gfx_gfx_demo 1 1 0
-
测试结果
程序正常启动,如果平台接入屏幕,会看到中间的红框图片从下往上移动,如下图:
-
-
退出命令
输入
q
即可退出demo