• 全志ARM926 Melis2.0系统的开发指引⑦


    编写目的

    本文档是全志 Melis2.0 系统的开发指引文档,旨在协助开发者了解和掌握 Melis 系统,快速搭建 Melis系统的开发环境,将 Melis2.0 系统应用到产品开发中。
    在这里插入图片描述

    11. 调屏

    11.1. 调屏步骤简介

    11.1.1. 判断屏接口。

    首先要判断屏的接口,是 HV、CPU 还是 LVDS 接口的屏,不同的接口,硬件连线及调屏方法不一样。
    1.询问客户、屏厂或则根据屏的规格书等确定。
    2.通过硬件连线方式确定。

    11.1.2. 确定硬件连接。

    不同的接口屏,硬件连接不一样,同一接口的屏,连接方式有几种。

    1.根据“屏硬件连接”确认。

    2.根据原理图确认屏背光、电源、时钟、复位及扩展 IO 连接。

    11.1.3. 配置显示部分 sys_config.fex

    11.1.3.1. 配置屏相关 IO
    ;---------------------------------------------------------------------------------------------------------
    ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串
    ; 描述gpio的形式:Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态>
    ; pinName = port:P[A-J]<CFG><PULL><DRV_LEVEL><DATA>
    ;---------------------------------------------------------------------------------------------------------
    [lcd0_para]
    lcd_power_used = 0
    lcd_power = port:PA0<1><default><default><1>
    lcd_bl_en_used = 0
    ;lcd_pwm_used = 0
    ;lcd_pwm = port:PE12<4><0><default><default>
    ;lcdd0 = port:PE0<3><default><default><default>
    ....
    lcdvsync = port:PD21<2><default><default><default>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    11.1.4. Lcd_panel_cfg.c 初始化文件中配置屏参数

    11.1.4.1. LCD_cfg_panel_info

    lcd_panel_para_info(__s32 sel, disp_panel_para *info) 函数中设置相关屏参,包括像素、刷新
    率、前后肩、RGB 格式等。

    11.1.4.2. LCD_open_flow

    根据屏的开屏流程函数 LCD_open_flow(__u32 sel) 修改相关函数:
    1.static void LCD_power_on(__u32 sel)使能屏,设置复位时序。
    2.自定义 LCD_panel_init(__u32 sel) 函数根据屏写数据的不同接口,调用相关接口,写入初始化代
    码。该函数接在 LCD_power_on 函数之后即可。
    比如 hv 屏可能需要 spi 或 iic 初始化,用 LP_TX 模式初始化。无需设置初始化代码的屏,不用设置。

    11.2. 软件配置说明

    11.2.1. 屏文件说明

    lcd_panel_cfg.c 文件,定义了 TCON 的参数,开关屏的流程,还有对屏的初始化操作。
    对 IO 位置的定义,包括电源控制,配屏使用的 GPIO,以及 LCD 控制器 IO 的定义在 sys_config.fex 中。
    函数:LCD_cfg_panel_info
    功能:配置 C200S 的 TCON 基本参数
    原型:static void LCD_cfg_panel_info(__panel_para_t * info)
    参数的定义见“3 TCON 参数说明”。

    函数:LCD_open_flow
    功能:定义开屏的流程
    原型:static __s32 LCD_open_flow(__u32 sel)
    具体说明见“2.2 开关屏流程”。

    函数:LCD_close_flow
    功能:定义关屏的流程
    原型:static __s32 LCD_close_flow(__u32 sel)
    该函数与 LCD_open_flow 对应

    函数:LCD_get_panel_funs_0/ LCD_get_panel_funs_1
    功能:
    原型:void LCD_get_panel_funs_0(__lcd_panel_fun_t * fun)
    初始化注册屏的相关操作。

    11.2.2. 开关屏流程

    开关屏的常见操作流程如图 2-2 所示。
    其中,LCD_open_flow 和 LCD_close_flow 称为开关屏流程函数,方框中的函数,如 LCD_power_on,

    TCON_open 等函数,称为开关屏步骤函数。
    部分屏不需要写入屏初始化参数,LCD_panel_init 及 LCD_panel_exit 这两个步骤函数(图中紫色框部分)可以省去。

    在这里插入图片描述

    11.2.2.1. 开关屏步骤函数说明

    开屏的步骤函数有 LCD_panel_init,TCON_open, LCD_power_on,LCD_bl_open。

    函数:LCD_panel_init
    功能:对屏初始化
    原型:static void LCD_panel_init(__u32 sel)
    可参考“2.3 对屏的初始化”。部分屏不需要进行初始化操作,LCD_panel_init 及 LCD_panel_exit 这两个步骤函数可以省去。

    函数:TCON_open
    功能:打开 F20 TCON
    原型:__s32 TCON0_open(__u32 sel)
    该函数由显示驱动提供,用户无需实现。

    函数:LCD_power_on
    功能:打开 LCD 电源
    原型:static void LCD_power_on(__u32 sel)
    显示驱动提供 LCD_POWER_EN 函数可供调用,用户也可自由实现函数内容。

    函数:LCD_bl_open
    功能:打开 LCD 背光
    原型:static void LCD_bl_open(__u32 sel)
    显示驱动提供 LCD_PWM_EN 和 LCD_BL_EN 函数可供调用,用户也可自由实现函数内容。
    LCD_PWM_EN,LCD_BL_EN,LCD_POWER_EN 这三个函数是通过 GPIO 控制实现电源和背光的开启关闭,IO 的位置及属性定义在 sys_config.fex 文件中。

    函数:LCD_PWM_EN
    功能:打开或关闭 LCD 背光调节的 PWM 信号
    原型:void LCD_PWM_EN (__u32 sel, __bool b_en)
    参数说明:
    b_en=0:将 PWM pin 设为输入,并把 PWM 模块关闭
    b_en=1:将 PWM pin 设为 PWM,并把 PWM 模块打开
    对应于 sys_config.fex 文件的 lcd_pwm。

    函数:LCD_BL_EN
    功能:打开或关闭 LCD 背光
    原型:void LCD_BL_EN (__u32 sel, __bool b_en)
    参数说明:
    b_en=0:设置 LCD 背光控制 IO 为对应电平,关闭背光
    b_en=1:设置 LCD 背光控制 IO 为对应电平,打开背光
    对应于 sys_config.fex 文件的 lcd_bl_en;

    函数: LCD_POWER_EN
    功能:打开或关闭 LCD 电源
    原型:void LCD_POWER_EN (__u32 sel, __bool b_en)
    参数说明:
    b_en=0:设置 LCD 电源控制 IO 为对应电平,关闭 LCD 电源
    b_en=1:设置 LCD 电源控制 IO 为对应电平,打开 LCD 电源
    对应于 sys_config.fex 文件的 lcd_power。
    关屏的步骤函数与开屏的步骤函数相对应。

    11.2.2.2. 开关屏流程函数说明

    函数:LCD_open_flow
    功能:初始化开关屏的步骤流程
    原型:static __s32 LCD_open_flow(__u32 sel)

    函数常用内容为:

    static __s32 LCD_open_flow(__u32 sel)
    {
        LCD_OPEN_FUNC(sel, LCD_power_on,10);
        LCD_OPEN_FUNC(sel, LCD_panel_init, 50);
        LCD_OPEN_FUNC(sel, TCON_open, 100);
        LCD_OPEN_FUNC(sel, LCD_bl_open, 0);
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如上,初始化整个开屏的流程步骤为四个:
    1、打开 LCD 电源,再延迟 10ms;
    2、初始化屏,再延迟 50ms;
    3、打开 C200S TCON,再延迟 200ms;
    4、打开背光,再延迟 0ms。
    LCD_open_flow 函数只会系统初始化的时候调用一次,执行每个 LCD_OPEN_FUNC 即是把对应的开屏步骤函数进行注册,并没有执行该开屏步骤函数。LCD_open_flow 函数的内容必须统一用 LCD_OPEN_FUNC(sel, function, delay_time)进行函数注册的形式,确保正常注册到开屏步骤中。

    函数:LCD_OPEN_FUNC
    功能:注册开屏步骤函数到开屏流程中
    原型:void LCD_OPEN_FUNC(__u32 sel, LCD_FUNC func, __u32 delay)
    参数说明:
    func 是一个函数指针,其类型是:void (*LCD_FUNC) (__u32 sel),用户自己定义的函数必须也要用统一的形式。比如:

    void user_defined_func(__u32 sel)
    {
        //do something
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    delay 是执行该步骤后,再延迟的时间,时间单位是毫秒。

    11.2.3. 对屏的初始化

    一部分屏需要进行初始化操作,在开屏步骤函数中,对应于 LCD_panel_init 函数。在 C200S 中,提供了两种方式对屏的初始化。
    一种是通过 8080 总线的方式,使用的是 LCDIO(PD,PH)。这种初始化方式,用于 CPU 屏中,其总线的引脚位置定义与 CPU 屏一致。
    一种是 SPI 或 IIC 等串行的方式,使用的是 C200S 的 GPIO 引脚模拟实现。模拟 GPIO 的引脚位置定义见于sys_config.fex 中。

    11.2.3.1. IO 模拟串行接口初始化

    IO 模拟串行接口初始化可以参考附录中的实例。
    IO 的位置(PIN 脚)定义,默认属性(输入输出)定义及默认输出值在 sys_config.fex,具体请参考 2.5.2。
    显示驱动提供 3 个接口函数可供使用。说明如下:
    函数:LCD_GPIO_read
    功能:读取 LCD_GPIO PIN 脚上的电平
    原型:__s32 LCD_GPIO_read(__u32 sel,__u32 io_index);
    参数说明:
    io_index = 0:对应于 sys_config.fex 中的 lcd_gpio_0
    io_index = 1:对应于 sys_config.fex 中的 lcd_gpio_1
    io_index = 2:对应于 sys_config.fex 中的 lcd_gpio_2
    io_index = 3:对应于 sys_config.fex 中的 lcd_gpio_3
    函数返回值为对应 IO 的输入电平,只用于该 GPIO 定义为输入的情形。

    函数:LCD_GPIO_write
    功能:LCD_GPIO PIN 脚上输出高电平或低电平
    原型:__s32 LCD_GPIO_write(__u32 sel,__u32 io_index, __u32 data);
    参数说明:
    io_index = 0:对应于 sys_config.fex 中的 lcd_gpio_0
    io_index = 1:对应于 sys_config.fex 中的 lcd_gpio_1
    io_index = 2:对应于 sys_config.fex 中的 lcd_gpio_2
    io_index = 3:对应于 sys_config.fex 中的 lcd_gpio_3
    data = 0:对应 IO 输出低电平
    data = 1:对应 IO 输出高电平
    只用于该 GPIO 定义为输出的情形。

    函数:LCD_GPIO_set_attr
    功能:设置 LCD_GPIO PIN 脚为输入或输出模式
    原型:__s32 LCD_GPIO_set_attr(__u32 sel,__u32 io_index, __bool b_output);
    参数说明:
    io_index = 0:对应于 sys_config.fex 中的 lcd_gpio_0
    io_index = 1:对应于 sys_config.fex 中的 lcd_gpio_1
    io_index = 2:对应于 sys_config.fex 中的 lcd_gpio_2
    io_index = 3:对应于 sys_config.fex 中的 lcd_gpio_3
    b_output = 0:对应 IO 设置为输入
    b_output = 1:对应 IO 设置为输出

    11.2.3.2. CPU 屏 8080 总线初始化

    CPU 屏的初始化可以参考“附录”的实例。
    显示驱动提供 5 个接口函数可供使用。如下:

    函数:LCD_CPU_WR
    功能:设定 CPU 屏的指定寄存器为指定的值
    原型:void LCD_CPU_WR(__u32 sel, __u32 index, __u32 data)
    函数内容为

    void LCD_CPU_WR(__u32 sel, __u32 index, __u32 data)
    {
        LCD_CPU_WR_INDEX(sel, index);
        LCD_CPU_WR_DATA(sel, data);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实现了 8080 总线上的两个写操作。
    LCD_CPU_WR_INDEX 实现第一个写操作,这时 PIN 脚 RS(A1)为低电平,总线数据上的数据内容为参数index 的值。
    LCD_CPU_WR_DATA 实现第二个写操作,这时 PIN 脚 RS(A1)为高电平,总线数据上的数据内容为参数data 的值。

    函数:LCD_CPU_WR_INDEX
    功能:设定 CPU 屏为指定寄存器
    原型:void LCD_CPU_WR(__u32 sel, __u32 index, __u32 data)
    void LCD_CPU_WR_INDEX(__u32 sel,__u32 index);
    具体说明见 LCD_CPU_WR。

    函数:LCD_CPU_WR_DATA
    功能:设定 CPU 屏寄存器的值为指定的值
    原型:void LCD_CPU_WR_DATA(__u32 sel, __u32 data);
    具体说明见 LCD_CPU_WR。

    函数:LCD_CPU_AUTO_FLUSH
    功能:开启 CPU 屏的刷新
    原型:void LCD_CPU_AUTO_FLUSH(__u32 sel, __bool en);
    参数说明:
    en = 1:8080 总线上开始传送显示 BUFFER 的数据,实现 CPU 屏的刷新

    函数:LCD_cpu_register_irq
    功能:设置 LCD_GPIO PIN 脚为输入或输出模式
    原型:void LCD_CPU_register_irq(__u32 sel, void (*Lcd_cpuisr_proc) (void))
    注册 cpu 屏的中断处理函数,驱动会在每个 vblanking 中断里调用一下用户注册的中断处理函数
    Lcd_cpuisr_proc。
    CPU 屏的初始化对应于开屏步骤函数的 LCD_panel_init。在 CPU 屏 LCD_panel_init 函数的最后,需要进行两个操作步骤:
    1、使用 LCD_CPU_register_irq 注册 CPU 屏的中断处理函数 Lcd_cpuisr_proc,该函数的内容,可以是CPU 屏 GRAM 的 X 和 Y 坐标设置为零的操作,以保证异步屏每帧进行一次同步。
    2、调用 LCD_CPU_AUTO_FLUSH(sel,1)打开显示数据传送。
    示例如下:

    static void LCD_panel_init(__u32 sel)
    {
        kgm281i0_init(sel); //initial lcd panel
        kgm281i0_write_gram_origin(sel); //set gram origin
        LCD_CPU_register_irq(sel,Lcd_cpuisr_proc); //resgister cpu irq func
        LCD_CPU_AUTO_FLUSH(sel,1); //start sent gram data
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    区别于模拟串行接口的初始化,LCD_open_flow 中,CPU 屏的初始化 LCD_panel_init 放在 TCON_open之后,示例如下:

    static __s32 LCD_open_flow(__u32 sel)
    {
        LCD_OPEN_FUNC(sel, LCD_power_on,10);
        LCD_OPEN_FUNC(sel, TCON_open, 100);
        LCD_OPEN_FUNC(sel, LCD_panel_init, 50);
        LCD_OPEN_FUNC(sel, LCD_bl_open, 0);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    11.2.4. 其它函数

    11.2.4.1. GPIO 操作函数

    用户有可能有需要自己对某些 GPIO 进行操作,显示驱动封装了几个函数提供给用户,它们屏避了操作系统间的差异,也就是说在不同的操作系统中都可以使用。

    函数:OSAL_GPIO_Request
    功能:申请 GPIO;
    原型:__hdle OSAL_GPIO_Request(user_gpio_set_t *gpio_list, __u32 group_count_max);
    参数说明:
    gpio_list 为 GPIO 的设置,该结构体如下:

    typedef struct
    {
    	char gpio_name[32];
    	int port;
    	int port_num;
    	int mul_sel;
    	int pull;
    	int drv_level;
    	int data;
    }	user_gpio_set_t;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    group_count_max: 要设置 GPIO 的个数. 函数返回: 成功返回 GIPO 的句柄, 失败返回 0.

    函数:OSAL_GPIO_Release
    功能:释放 GPIO. 原型:__s32 OSAL_GPIO_Release(__hdle p_handler, __s32 if_release_to_default_status);
    参数说明:
    p_handler: GPIO 的句柄.
    if_release_to_default_status: 0/1: 表示释放后的GPIO处于输入状态;2: 表示释放后的 GPIO状态不变. 函数返回:成功返回 0, 失败返回错误号
    将 GIPO PH6 输出高电平,示例如下:

    static void LCD_vcc_on(__u32 sel)
    {
        user_gpio_set_t gpio_list;
        int hdl;
        gpio_list.port = 8;// 1:A; 2:B; 3:C; 4:D;5:E;6:F;7:G;8:H.....
        gpio_list.port_num = 6;
        gpio_list.mul_sel = 1;
        gpio_list.pull = 0;
        gpio_list.drv_level = 0;
        gpio_list.data = 1;
        hdl = OSAL_GPIO_Request(&gpio_list, 1);
        OSAL_GPIO_Release(hdl, 2);
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    11.2.4.2. 延时函数

    驱动提供了毫秒和微秒级的延时给用户使用, 不过建议如果延时时间比较长的话可以在开关屏流程里
    新添新的函数. 因为在 boot 系统里延时是死等的,效率会比较低;如果放在开关屏流程里的话会启用 timmer去做延时,在延时期间 CPU 可以做其它的工作.

    函数:LCD_delay_ms
    功能:延时 ms 毫秒
    原型:void LCD_delay_ms(__u32 ms)

    函数:LCD_delay_us
    功能:延时 us 微秒
    原型:void LCD_delay_us(__u32 us)

    11.3. TCON 参数说明

    11.3.1. 接口参数说明

    11.3.1.1. lcd_if

    设置相应值的对应含义为:
    0:HV(RGB 同步屏)接口
    1:CPU(8080)接口
    2:TTL
    3:LVDS 接口

    11.3.1.2. lcd_hv_if

    Lcd HV panel Interface
    这个参数只有在 lcd_if=0 时才有效。定义 RGB 同步屏下的几种接口类型。
    设置相应值的对应含义为:
    0:Parallel RGB
    1:Serial RGB/ Serial YUV
    该参数结合 3.1.3 的 lcd_hv_smode 定义了屏的接口类型。

    11.3.1.3. lcd_hv_smode

    Lcd HV panel Serial Mode
    这个参数只有在 lcd_if=0 且 lcd_hv_if=1 时才有效。定义 RGB 同步串行接口屏的类型。
    设置相应值的对应含义为:
    0:Serial RGB
    1:Serial YUV(CCIR656)
    RGB 同步屏的接口类型可参考“附录 5.1.1 HV RGB 同步屏接口”。

    11.3.1.4. lcd_hv_s888_if

    Lcd HV panel Serial RGB output Interface
    这个参数只有在 lcd_if=0 且 lcd_hv_if=1 且 lcd_hv_smode=0(Serial RGB)时才有效。
    (lcd_hv_s888_if & 0xC)>>2 得到的值,定义了奇数行 RGB 输出的顺序
    0: R→G→B
    1: B→R→G
    2: G→B→R
    (lcd_hv_s888_if & 0x3)得到的值,定义了偶数行 RGB 输出的顺序
    0: R→G→B
    1: B→R→G
    2: G→B→R

    11.3.1.5. lcd_hv_syuv_if

    Lcd HV panel Serial YUV output Interface

    这个参数只有在 lcd_if=0 且 lcd_hv_if=2 且 lcd_hv_smode=1(Serial YUV)时才有效。

    (lcd_hv_syuv_if & 0xC)>>2 得到的值,定义了 YUV 输出格式
    0:YUYV
    1:YVYU
    2:UYVY
    3:VYUY
    (lcd_hv_syuv_if & 0x3) 得到的值,定义 CCIR656 编码时 F 相对有效行延迟的行数

    0:F toggle right after active video line
    1:Delay 2 lines (CCIR NTSC)
    2:Delay 3 lines (CCIR PAL)

    11.3.1.6. lcd_cpu_if

    Lcd CPU panel Interface
    这个参数只有在 lcd_if=1 时才有效。
    设置相应值的对应含义为:
    0:18bit×1cycle parallel (RGB666)
    4:16bit×1cycle parallel (RGB565)
    5:9bit×2cycle serial (RGB666)
    7:8bit×2cycle serial (RGB565)
    在这里插入图片描述

    11.3.1.7. lcd_lvds_bitwidth

    Lcd LVDS panel Bit Width
    设置相应值对应含义为:
    0:24bit
    1:18bit
    相关说明可参见“附录 5.1.3 LVDS 屏接口”

    11.3.1.8. lcd_lvds_mode

    Lcd LVDS Mode
    这个参数只有在 lcd_lvds_bitwidth=0 时才有效
    设置相应值对应含义为:
    0:NS mode
    1:JEIDA mode
    NS mode 和 JEIDA mode 的说明可参见“附录 5.1.3 LVDS 屏接口”。

    11.3.2. 时序参数说明

    11.3.2.1. lcd_x

    显示屏宽的像素个数

    11.3.2.2. lcd_y

    显示屏高的像素个数

    11.3.2.3. lcd_ht

    Horizontal Total time
    指一行总的 dclk 的 cycle 个数。见图 3-1。
    在这里插入图片描述

    11.3.2.4. lcd_hbp

    Horizontal Back Porch
    指有效行间,行同步信号(hsync)开始,到有效数据开始之间的 dclk 的 cycle 个数。见图 3-1。

    11.3.2.5. lcd_vt

    Vertical Total time
    指两场的总行数。见图 3-2。
    在这里插入图片描述

    11.3.2.6. lcd_vbp

    Vertical Back Porch
    指场同步信号(vsync)开始,到有效数据行开始之间的行数。见图 3-2。

    11.3.2.7. lcd_hv_hspw

    Horizontal Sync Pulse Width
    指行同步信号的宽度。单位为 1 个 dclk 的时间(即是 1 个 data cycle 的时间)。
    见图 3-1。

    11.3.2.8. lcd_hv_vspw

    Vertical Sync Pulse Width
    指场同步信号的宽度。单位为行。见图 3-2

    11.3.2.9. lcd_dclk_freq

    Data Clock Frequency
    指 PIN 总线上数据的传送频率。单位为 MHz。
    屏幕刷新帧数 = (dclk_freq) / (ht×vt/2)

    11.3.2.10. lcd_io_cfg0

    Lcd IO Configuration0
    这个参数提供 RGB 同步屏的相位调节。
    lcd_dclk_freq < 40 时,该参数可设置为 0x00000000,0x04000000,0x10000000,0x14000000,
    0x20000000,0x24000000,对应 LCD DCLK 的六个不同相位。
    lcd_dclk_freq > 40 时,该参数可设置为 0x00000000,0x04000000 对应 LCD DCLK 的两个不同相位。
    补充说明 1:hbp 在部分屏规格书的定义里并不包括 hspw。这种情况下,要正确配置 AW 的 TCON,
    hbp(aw)=hbp(panel)+hspw(panel)。vbp 的定义同 hbp。
    补充说明 2:F20 的 TCON 中,图 3-1 中的 hfp,图 3-2 中的 vfp 不能为 0。

    11.3.3. 其他参数说明

    11.3.3.1. lcd_pwm_freq

    Lcd backlight PWM Frequency
    这个参数配置 lcd_pwm 信号的频率,单位为 KHz。 F20 中可以输出的 PWM 频率为 1KHz-100KHz。

    11.3.3.2. lcd_gamma_correction_en

    Lcd Gamma Correction Enable
    设置相应值的对应含义为:
    0:TCON 的 Gamma 校正关闭
    1:TCON 的 Gamma 校正打开
    设置为 1 时,需要对 lcd_gamma_tbl [256]进行赋值。

    11.3.3.3. lcd_gamma_tbl

    Lcd Gamma Table
    该参数为一个数组__u32 lcd_gamma_tbl[256];
    lcd_gamma_tbl[n] = rout<<16 | gout<<8 | bout<<0 表示:输入 r=n 时,输出 r=rout;输入 g=n 时,
    输出 g=gout;输入 b=n 时,输出 b=bout。
    用户使用 Gamma 校正功能时,可以使用函数 lcd_gamma_gen(__panel_para_t * info)对其赋值,函数
    内容可自由实现。具体可参考附录中的实例。

    11.4. 屏文件实例

    路径:\eMod\drv_display\lcd\lcd_bak

    -. 全志相关工具和资源

    -.1 全志固件镜像修改工具 ImageModify.exe 下载

    在这里插入图片描述
    下载地址:
    固件镜像修改工具 ImageModify.exe下载 ImageModify_20230906.rar

    -.2 全志固件USB刷机工具 PhoenixSuit 下载

    在这里插入图片描述
    下载地址:
    USB刷机工具 PhoenixSuit下载 PhoenixSuit_CN_V1.1.1_20230906.rar

    -.3 全志Melis2.0 用户手册.pdf下载

    下载地址:
    全志Melis2.0 用户手册.pdf下载 documents_20230906_melis_v2.0.rar

    -.4 全志melis2.0 sdk源码库下载

    下载地址:
    全志melis2.0 sdk源码库下载 melis2.0-sdk-release_20230906V2.0.rar

  • 相关阅读:
    Java的HTTPClient工具类(附代码实现)
    28、iNeRF
    服装工业新消费·PLM
    【C++】C/C++内存管理
    Mysql(多表查询)
    面试题:问js的forEach和map的区别
    vue2+three.js实现宇宙(进阶版)
    Revel框架基本使用和搭建教程
    HTML学生个人网站作业设计:宠物网站设计——宠物网站带会员登陆表单验证功能7页
    接口回调中的次数判断方法
  • 原文地址:https://blog.csdn.net/kingpower2018/article/details/133519457