导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. geniusgogo
    G
    • 资料
    • 关注 1
    • 粉丝 1
    • 我的积分 655
    • 主题 4
    • 帖子 14
    • 最佳 0
    • 群组 0

    geniusgogoLV 4

    @geniusgogo

    655
    积分
    0
    声望
    11
    资料浏览
    14
    帖子
    1
    粉丝
    1
    关注
    注册时间 最后登录

    geniusgogo 取消关注 关注

    geniusgogo 发布的最新帖子

    • 回复: 兄弟们,MangoPi-麻雀MQ已成功量产

      @mangogeek 这两按键摆在这里,USB线一插怎么按?难道没人吐槽过吗?

      发布在 MR Series
      G
      geniusgogo
    • 回复: melis里适配RGB屏,DE。CLK没有任何信号

      @uuuuid

      #include <stdio.h>
      #include <stdint.h>
      #include <stdlib.h>
      #include <hal_clk.h>
      #include <hal_gpio.h>
      #include "../disp/disp_sys_intf.h"
      #include "disp_board_config.h"
      
      struct property_t g_lcd0_config[] = {
      	{
      		.name = "lcd_used",
      		.type = PROPERTY_INTGER,
      		.v.value = 1,
      	},
      	{
      		.name = "lcd_driver_name",
      		.type = PROPERTY_STRING,
      		.v.str = "default_lcd",
      	},
      	{
      		.name = "lcd_if",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,	/* LCD_IF_HV */
      	},
      	{
      		.name = "lcd_hv_if",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,	/* LCD_HV_IF_PRGB_1CYC */
      	},
      	{
      		.name = "lcd_x",
      		.type = PROPERTY_INTGER,
      		.v.value = 480,
      	},
      	{
      		.name = "lcd_y",
      		.type = PROPERTY_INTGER,
      		.v.value = 272,
      	},
      	{
      		.name = "lcd_width",
      		.type = PROPERTY_INTGER,
      		.v.value = 80,
      	},
      	{
      		.name = "lcd_height",
      		.type = PROPERTY_INTGER,
      		.v.value = 47,
      	},
      	{
      		.name = "lcd_dclk_freq",
      		.type = PROPERTY_INTGER,
      		.v.value = 10,
      	},
      	/* lcd_ht = lcd_x + lcd_hspw + lcd_hbp + lcd_hfp */
      	{
      		.name = "lcd_ht",
      		.type = PROPERTY_INTGER,
      		.v.value = 592,
      	},
      	{
      		.name = "lcd_hbp",
      		.type = PROPERTY_INTGER,
      		.v.value = 56,
      	},
      	{
      		.name = "lcd_hspw",
      		.type = PROPERTY_INTGER,
      		.v.value = 40,
      	},
      	/* lcd_vt = lcd_y + lcd_vspw + lcd_vbp + lcd_vfp */
      	{
      		.name = "lcd_vt",
      		.type = PROPERTY_INTGER,
      		.v.value = 286,
      	},
      	{
      		.name = "lcd_vspw",
      		.type = PROPERTY_INTGER,
      		.v.value = 5,
      	},
      	{
      		.name = "lcd_vbp",
      		.type = PROPERTY_INTGER,
      		.v.value = 6,
      	},
      	{
      		.name = "lcd_frm",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "lcd_io_phase",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "lcd_gamma_en",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "lcd_bright_curve_en",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "lcd_cmap_en",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "deu_mode",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "lcdgamma4iep",
      		.type = PROPERTY_INTGER,
      		.v.value = 22,
      	},
      	{
      		.name = "smart_color",
      		.type = PROPERTY_INTGER,
      		.v.value = 90,
      	},
      
      	// backlight enable
      	/*
      	{
      		.name = "lcd_gpio_1",
      		.type = PROPERTY_GPIO,
      		.v.gpio_list = {
      			.gpio = GPIOE(11),
      			.mul_sel = GPIO_DIRECTION_OUTPUT,
      			.pull = 0,
      			.drv_level = 3,
      			.data = 1,
      		},
      	},
      	*/
      	{
      		.name = "lcd_backlight",
      		.type = PROPERTY_INTGER,
      		.v.value = 50,
      	},
      	{
      		.name = "lcd_pwm_used",
      		.type = PROPERTY_INTGER,
      		.v.value = 1,
      	},
      	{
      		.name = "lcd_pwm_ch",
      		.type = PROPERTY_INTGER,
      		.v.value = 7,
      	},
      	{
      		.name = "lcd_pwm_freq",
      		.type = PROPERTY_INTGER,
      		.v.value = 1000,
      	},
      	{
      		.name = "lcd_pwm_pol",
      		.type = PROPERTY_INTGER,
      		.v.value = 1,
      	},
      	{
      		.name = "lcd_pwm_max_limit",
      		.type = PROPERTY_INTGER,
      		.v.value = 255,
      	},
      	/* POWER-vcc */
      	{
      		.name = "lcd_gpio_0",
      		.type = PROPERTY_GPIO,
      		.v.gpio_list = {
      			.gpio = GPIOB(6),
      			.mul_sel = GPIO_DIRECTION_OUTPUT,
      			.pull = 0,
      			.drv_level = 3,
      			.data = 1,
      		},
      	},
      	//gpio
      	{
      		.name = "LCD0_D2",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(0),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D3",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(1),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D4",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(2),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D5",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(3),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D6",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(4),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D7",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(5),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D10",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(6),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D11",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(7),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D12",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(8),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D13",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(9),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D14",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(10),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D15",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(11),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D18",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(12),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D19",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(13),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D20",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(14),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D21",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(15),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D22",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(16),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_D23",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(17),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_CLK",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(18),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_DE",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(19),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_HSYNC",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(20),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	},
      	{
      		.name = "LCD0_VSYNC",
      		.type = PROPERTY_PIN,
      		.v.gpio_list = {
      			.gpio = GPIOD(21),
      			.mul_sel = 2,
      			.pull = 0,
      			.drv_level = 3,
      		},
      	}
      };
      
      struct property_t g_lcd1_config[] = {
      	{
      		.name = "lcd_used",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      };
      
      struct property_t g_disp_config[] = {
      	{
      		.name = "disp_init_enable",
      		.type = PROPERTY_INTGER,
      		.v.value = 1,
      	},
      	{
      		.name = "disp_mode",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,	/* DISP_INIT_MODE_SCREEN0 */
      	},
      	{
      		.name = "screen0_output_type",
      		.type = PROPERTY_INTGER,
      		.v.value = 1,	/* DISP_OUTPUT_TYPE_LCD */
      	},
      	{
      		.name = "screen0_output_mode",
      		.type = PROPERTY_INTGER,
      		.v.value = 4,
      	},
      	{
      		.name = "screen0_output_format",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "screen0_output_bits",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "screen0_output_range",
      		.type = PROPERTY_INTGER,
      		.v.value = 1,
      	},
      	{
      		.name = "screen0_output_eotf",
      		.type = PROPERTY_INTGER,
      		.v.value = 4,
      	},
      	{
      		.name = "screen0_output_cs",
      		.type = PROPERTY_INTGER,
      		.v.value = 257,
      	},
      	{
      		.name = "screen0_output_dvi_hdmi",
      		.type = PROPERTY_INTGER,
      		.v.value = 2,
      	},
      	{
      		.name = "screen0_output_scan",
      		.type = PROPERTY_INTGER,
      		.v.value = 0,
      	},
      	{
      		.name = "screen1_output_type",
      		.type = PROPERTY_INTGER,
      		.v.value = 1,
      	},
      	{
      		.name = "screen1_output_mode",
      		.type = PROPERTY_INTGER,
      		.v.value = 4,
      	},
      };
      
      u32 g_lcd0_config_len = sizeof(g_lcd0_config) / sizeof(struct property_t);
      u32 g_lcd1_config_len = sizeof(g_lcd1_config) / sizeof(struct property_t);
      u32 g_disp_config_len = sizeof(g_disp_config) / sizeof(struct property_t);
      
      
      发布在 MR Series
      G
      geniusgogo
    • melis里适配RGB屏,DE。CLK没有任何信号

      之前在d1上跑melis,适配了mipi的屏参后,点屏成功。
      现在换到RGB屏,同样的适配屏参后却没有任何IO信号输出。
      请教一下大佬们,在melis系统里RGB屏需要做何修改?

      发布在 MR Series
      G
      geniusgogo
    • 回复: D1S上面如何跑melis?

      @nancheng 得问全志授权要

      发布在 MR Series
      G
      geniusgogo
    • D1S上面如何跑melis?

      前天经过大佬指点已经顺利的将melis跑在D1上了。
      现在又切换到D1S上来跑,发现遇到类似问题,跑起来就挂了。
      根据当时D1的修改配置方法,在F133的project配置里已经是类似D1上面的配置修改了,但是不知道为啥,还会起来就挂。
      下面是启动日志:

      [142]HELLO! BOOT0 is starting!
      [144]BOOT0 commit : 889f614
      sbi2ekernel
      ===============================================================================================================
      |                   /'\_/`\       (_ )  _                       /'_  )    /'_ `\   /' _`\                     |
      |                   |     |   __   | | (_)  ___  ______  _   _ (_)_) |   ( (_) |   | ( ) |                    |
      |                   | (_) | /'__`\ | | | |/',__)(______)( ) ( ) _(_ <     \__, |   | | | |                    |
      |                   | | | |(  ___/ | | | |\__, \        | \_/ |( )_) | _     | | _ | (_) |                    |
      |                   (_) (_)`\____)(___)(_)(____/        `\___/'`\____)(_)    (_)(_)`\___/'                    |
      |version : V3.9.0                                                                                             |
      |commitid: 976499a346a3d5d6d80047f3844d1d5c3e37ac55                                                           |
      |sunxiver: 30800                                                                                              |
      |timever : Thu, 04 Nov 2021 20:14:43 +0800                                                                    |
      |compiler: gcc version 8.4.0 (T-HEAD RISCV Tools V1.10.2 B20201104)                                           |
      |optimal : -Os -g -gdwarf-2 -gstrict-dwarf                                                                    |
      |linker  : GNU ld (GNU Binutils) 2.32                                                                         |
      |newlibc : 3.0.0                                                                                              |
      |author  : zhouji                                                                                             |
      ===============================================================================================================
      
      [DBG]: [__mount_parts:0273]:                                classname=DMS
      [DBG]: [__mount_parts:0274]:                                devname=dms01
      [DBG]: [__mount_parts:0301]:                                find last lun.
      [DBG]: [__mount_parts:0331]:                                nPart = 1.
      [DBG]: [__mount_parts:0460]:                                dmsPart: "DMS\dms010" is linked to symbel "B".
      [ERR]: [esFSYS_pread:0318]:                                 fs fatal err
      [ERR]: [esFSYS_pread:0318]:                                 fs fatal err
      [ERR]: [esFSYS_pread:0318]:                                 fs fatal err
      [ERR]: [esFSYS_pread:0318]:                                 fs fatal err
      [DBG]: [esFSYS_mntfs:0317]:                                 devfs,mount on B.
      [DBG]: [kservice_maintask:0834]:                            partition [B] plug in..
      [DBG]: [__mount_parts:0273]:                                classname=DISK
      [DBG]: [__mount_parts:0274]:                                devname=RAMDISK
      [DBG]: [__mount_parts:0301]:                                find last lun.
      [DBG]: [__mount_parts:0331]:                                nPart = 1.
      [DBG]: [__mount_parts:0460]:                                rawpart: "DISK\RAMDISK0" is linked to symbel "C".
      [ERR]: [esFSYS_mntfs:0298]:                                 identify the filesystem failure.
      [ERR]: [޳cheduler startup
      [DBG]: [__mount_parts:0273]:                                classname=DISK
      [DBG]: [__mount_parts:0274]:                                devname=ROOTFS
      [DBG]: [__mount_parts:0301]:                                find last lun.
      [DBG]: [__mount_parts:0331]:                                nPart = 1.
      [DBG]: [__mount_parts:0460]:                                rawpart: "DISK\ROOTFS0" is linked to symbel "D".
      [DBG]: [esFSYS_mntfs:0317]:                                 minfs,mount on D.
      [DBG]: [kservice_maintask:0834]:                            partition [D] plug in..
      [DBG]: [melis_udisk_part_check:0553]:                       melis_udisk_part_check 553 copy udisk_buff
      
      [DBG]: [__mount_parts:0273]:                                classname=DISK
      [DBG]: [__mount_parts:0274]:                                devname=UDISK
      [DBG]: [__mount_parts:0301]:                                find last lun.
      [DBG]: [__mount_parts:0331]:                                nPart = 1.
      [DBG]: [__mount_parts:0423]:                                rawpart: "DISK\UDISK0" is linked to symbel "E".
      [ERR]: [esFSYS_mntfs:0298]:                                 identify the filesystem failure.
      [ERR]: [__mount_parts:0501]:                                mount E failure.
      SDC:hal_sdc_create host:0x401b65d8 id:0
      [ERR] SDC:name sdc0_d1,port 6,port_num 0,mul_sel 2, pull 1, drv_level 1
      [ERR] SDC:name sdc0_d0,port 6,port_num 1,mul_sel 2, pull 1, drv_level 1
      [ERR] SDC:name sdc0_clk,port 6,port_num 2,mul_sel 2, pull 1, drv_level 1
      [ERR] SDC:name sdc0_cmd,port 6,port_num 3,mul_sel 2, pull 1, drv_level 1
      [ERR] SDC:name sdc0_d3,port 6,port_num 4,mul_sel 2, pull 1, drv_level 1
      [ERR] SDC:name sdc0_d2,port 6,port_num 5,mul_sel 2, pull 1, drv_level 1
      SDC:Not implement __mci_restore_io,793
      SDC:Not imp hal_sdc_init,2206
      SDC:hal_sdc_init,2239 no imp
      SDC:hal_sdc_init,2248 no imp
      SDC:SDC Host Capability:0x3820f Ocr avail:0x3f0000
      SDC:Not implement __mci_hold_io,778
      SDC:SDC cd_mode:2 present_val:0
      SDC:SDC id:0 dma_use:1 present:0
       driver version SD/MMC/SDIO Host Controller Driver(v0.28 2021-08-24 16:50) init ok.
      host_id =0!
      [ERR]: [hal_ths_init:0094]:                                 0x2009404, 0x2009400, 0x2009430, 0x2009408
      
      key name:thermal_sensor key size:64 key offset:20
      
      thermal_sensor: 
      42 01 bb 98 0e b0 9d 01 
      the cir_master_init success
      phy_vbase : 0x4200800, usbc_no : 1, efuse : 0x19db00e
      [usb_new_phy_print][79] reg[DBG]: [console_LKeyDevEvent:0530]: input sys keydev not init!
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
       0x1c : 0x4
      [usb_new_phy_print][80] reg [DBG]: [console_LKeyDevEvent:0530]: input sys keydev not init!
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
      0x30 : 0xcb
      [usb_new_phy_print][81] reg 0x60 : 0x22b8
      [usb_new_phy_print][82] reg 0x40 : 0x8c
      
      [usb_new_phy_print][79] reg 0x1c : 0x0
      [usb_new_phy_print][80] reg 0x30 : 0x18b
      [usb_new_phy_print][81] reg 0x60 : 0x22b8
      [usb_new_phy_print][82] reg 0x40 : 0x7c
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
      
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
      [DBG]: [console_LKeyDevEvent:0530]:                         input sys keydev not init!
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\mod\slib.mod.
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\mod\display.mod.
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\mod\mixture.mod.
      [DBG]: [layer_request:0689]:                                requested: ch:0, id:0   disp_mgr.req_layer_cnt = 1
      [DBG]: [mod2drv_layerinfo:0366]:                            lbc_mode = 0
      [ERR]: [open_lcd_backlight:0610]:                           get backlight err,default to 100
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\mod\charset.mod.
      msh />Execute startup script begin..............
      	 install mod para num [2]: insmod d:\mod\orange.mod 
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\mod\orange.mod.
      Mod:d:\mod\orange.mod Installed!, mod id=120
      	 install mod para num [2]: insmod d:\apps\desktop.mod 
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\apps\desktop.mod.
      [DBG]: [DESKTOP_MOpen:0078]:                                DESKTOP_MOpen.
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\apps\init.axf.
      Mod:d:\apps\desktop.mod Installed!, mod id=127
      ...............Execute startup script end
      [DBG]: [msg_srv_init_key_channel:0150]:                     emit_ctr.h_keyGraber=0x40d6d1a0
      [DBG]: [msg_srv_init_key_channel:0161]:                     LdevID=0
      [DBG]: [application_init_process:0836]:                     &           application_init_process enter!             &
      dsk_reg_read_config_file 571 e:\setting.bin eLIBs_fopen fail
      dsk_reg_init_para 797 config not ok, format e:
      [DBG]: [esFSYS_mntfs:0317]:                                 fat,mount on E.
      [DBG]: [kservice_maintask:0834]:                            partition [E] plug in..
      [DBG]: [application_init_process:0854]:                     application_init_process 854 before live_init
      [DBG]: [live_init:0040]:                                    ~~~~~~~~~~~~~~before dsk_set_isn_charset~~~~~~~~~~~
      [DBG]: [alsa_open_pcm:0218]:                                open pcm! card:[audiocodec], pcmFlag:[1](0-cap;1-play)
      [SND_ERR][ksnd_pcm_prepare:2005]unsupport state transform.
      [DBG]: [dsk_display_set_lcd_brightness:0297]:               setting lcd_bright=176
      [DBG]: [application_init_process:0862]:                     application_init_process 862 before gscene_bgd_init
      [DBG]: [gscene_bgd_is_file_exist:0620]:                     file is exist:d:\res\bg_default0.jpg
      [DBG]: [gscene_bgd_init:0130]:                              bgd_com->screen_size.width = 800  bgd_com->screen_size.height = 480  ftype = 1
      [DBG]: [application_init_process:0883]:                     .start device monitor .......................................
      [DBG]: [application_init_process:0891]:                     application_init_process 891 before init_mainwin_create
      [DBG]: [dsk_display_set_lcd_brightness:0297]:               setting lcd_bright=192
      [DBG]: [__hbar_layer_create:0093]:                          hbar fb 800 46 gui_dir=0
      [DBG]: [__hbar_layer_create:0094]:                          hbar src 0 0 800 46
      [DBG]: [__hbar_layer_create:0095]:                          hbar scn 0 0 800 46
      [DBG]: [reset_headbar_data:0273]:                           xxxxxx para->data.volume = 30
      [DBG]: [reset_headbar_data:0277]:                           xxxxxx bright = 11
      [ERR]: [esPINS_ReadPinData:0640]:                           pin handle is invalid!
      [DBG]: [application_init_process:0897]:                     application_init_process 897 before _process_init
      [DBG]: [applet_info_manager_load_dir:0307]:                 find dir file d:\apps\phy_vbase : 0x4101800, usbc_no : 0, efuse : 0x19db00e
      [usb_new_phy_print][79] reg 0x1c : 0x0
      [usb_new_phy_print][80] reg 0x30 : 0x18b
      [usb_new_phy_print][81] reg 0x60 : 0x22b8
      [usb_new_phy_print][82] reg 0x40 : 0x7c
      
      [usb_new_phy_print][79] reg 0x1c : 0x0
      [usb_new_phy_print][80] reg 0x30 : 0x18b
      [usb_new_phy_print][81] reg 0x60 : 0x22b8
      [usb_new_phy_print][82] reg 0x40 : 0x7c
      
      desktop\app_root.desktop!
      [DBG]: [applet_info_manager_load_file:0267]:                filename = d:\apps\desktop\app_root.desktop len=124
      [DBG]: [__activity_load_common:0395]:                       load application application://app_root.
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\apps\app_root.axf.
      card_detect removed sdmmc_test->card_id=0
      [WRN] SD:mmc_card_open card not exit! id:0
      card open fail
      [DBG]: [app_home_create:0657]:                              ********  enter multi screen home application  **************
      [DBG]: [gscene_bgd_is_file_exist:0620]:                     file is exist:d:\res\bg_default0.jpg
      [DBG]: [gscene_bgd_set_status_show:0170]:                   bkpic: d:\res\bg_default0.jpg.
      [DBG]: [LDR_LoadFile:0247]:                                 filepath = d:\mod\vcoder.mod.
      [DBG]: [mod2drv_layerinfo:0366]:                            lbc_mode = 0
      [ERR]: [Mod_Display_MIoctrl:1771]:                          no this CMD in display mod
      [DBG]: [dsktop_scene_get_cur_app:0664]:                     g_last_desk_app_index:0
      [DBG]: [desktop_scene_create:0582]:                         width = 800, height= 480
      [DBG]: [desktop_scene_create:0587]:                         cur_desk_app_index:0
      [DBG]: [GUI_LogicLayerRequest:0527]: 
        src.w = 800   src.h = 480     
      
      [DBG]: [layer_request:0689]:                                requested: ch:1, id:0   disp_mgr.req_layer_cnt = 1
      [DBG]: [GUI_LogicLayerRequest:0527]: 
        src.w = 800   src.h = 46     
      
      [DBG]: [layer_request:0689]:                                requested: ch:1, id:1   disp_mgr.req_layer_cnt = 2
      [DBG]: [reset_headbar_data:0273]:                           xxxxxx para->data.volume = 30
      [DBG]: [reset_headbar_data:0277]:                           xxxxxx bright = 11
      [DBG]: [app_root_wincreate:4387]:                           root win = 40eff8f8
      [DBG]: [application_init_process:0918]:                     application_init_process 918 before GUI_GetMessageEx
      
      
      发布在 MR Series
      G
      geniusgogo
    • 回复: melis中disp驱动问题

      @caozilong 在 melis中disp驱动问题 中说:

      @geniusgogo 或者你了解到的方案中有其它更好的实现方式,也可以给我们推介一下. 🙂

      如果disp驱动能将帧同步中断回调开放,并在回调里通知当前正在使用的用户buffer指针,UI framebuffer就能根据这个回调来判断是否可以送下一帧数据,并且可以实现多buffer切换。
      类似是底层回调如下接口:

      void sync_event(void *current_buffer, void *prev_buffer)
      {
      }
      

      current_buffer代表正在准备显示的buffer,prev_buffer代表已经显示完的buffer。

      发布在 MR Series
      G
      geniusgogo
    • 回复: melis中disp驱动问题

      @caozilong 在 melis中disp驱动问题 中说:

      @bookos buffer是零拷贝,驱动内部记录是乒乓指针,buffer由应用去分配。
      所以,站在这个层面看显示驱动,你不能只分配一个静态framebuffer,而是至少分配两个,然后传指针进去.

      那这样的话,我又有一个疑问了,问题又回到最初的那个问题“应用不知道底层现在正在刷哪个buffer” 从而可能花屏。

      例如:应用分配buffer A/B,第一次显示buffer A,第二次显示buffer B,第三次由于应用不知道前两次显示的是否完成,所以按照应用层交替使用A/B buffer的逻辑,此时又会使用A,而此时底层驱动可能正在刷A,这就导致应用也会同时修改A buffer的数据,造成不同步花屏。

      发布在 MR Series
      G
      geniusgogo
    • 回复: melis中disp驱动问题

      @caozilong 在 melis中disp驱动问题 中说:

      分配了两个buffer,你可以认为是一个pingpong buffer机制,当前写的不是正在显示的那片buffer,两个buffer依赖TCON中断进行同步。
      虽然不存在花屏的问题,但是可能存在覆盖的问题,如果你送帧的帧率和TCON刷新率不匹配(太快),可能会覆盖上次还没显示出来的帧。
      比如你的帧率要控制在30fps,你就需要通过某种机制保证在这个范围内送帧,误差不要太大, 这方面RTOS做的要比linux 好很多。

      好的明白了,谢谢!👍

      发布在 MR Series
      G
      geniusgogo
    • 回复: melis中disp驱动问题

      @caozilong 在 melis中disp驱动问题 中说:

      只需要送帧.由TCON负责同步。你送的帧不一定马上显示出来,要等TCON中断过来,才会真正显示到屏幕上的。
      所以你要结合刷新率考虑帧率,帧率上去了,刷新率越大越好,帧率不能超过刷新率,图不变,同样的图刷新多少次,效果是一样的,用户感知不到,自己要有一个帧率的预估,帧率一般由片源决定的,比如30FPS,60FPS等等,帧率要小于刷新率,大于刷新率

      嗯,感谢解答。
      不过依然还有个疑问,送一帧下去后可能上层有开始要送第二帧,如果没法知道底层是否刷完的话,会造成花屏吧? 因为不知道底层刷没刷完。

      发布在 MR Series
      G
      geniusgogo
    • melis中disp驱动问题

      现在D1上将melis跑起来了,底层disp驱动也能点亮屏。
      遇到下面两个问题想请教一下:

      1. disp驱动如何进行帧同步刷新?
      2. disp驱动要显示一帧图像就是调用disp_ioctl(DISP_LAYER_SET_CONFIG, (void *)arg); ,请问上层如何知道显示一帧结束从而继续显示下一帧并释放资源?
      发布在 MR Series
      G
      geniusgogo