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

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

  • 编写目的
  • 11. 调屏
    • 11.1. 调屏步骤简介
      • 11.1.1. 判断屏接口。
      • 11.1.2. 确定硬件连接。
      • 11.1.3. 配置显示部分 sys_config.fex
        • 11.1.3.1. 配置屏相关 IO
      • 11.1.4. Lcd_panel_cfg.c 初始化文件中配置屏参数
        • 11.1.4.1. LCD_cfg_panel_info
        • 11.1.4.2. LCD_open_flow
    • 11.2. 软件配置说明
      • 11.2.1. 屏文件说明
      • 11.2.2. 开关屏流程
        • 11.2.2.1. 开关屏步骤函数说明
        • 11.2.2.2. 开关屏流程函数说明
      • 11.2.3. 对屏的初始化
        • 11.2.3.1. IO 模拟串行接口初始化
        • 11.2.3.2. CPU 屏 8080 总线初始化
      • 11.2.4. 其它函数
        • 11.2.4.1. GPIO 操作函数
        • 11.2.4.2. 延时函数
    • 11.3. TCON 参数说明
      • 11.3.1. 接口参数说明
        • 11.3.1.1. lcd_if
        • 11.3.1.2. lcd_hv_if
        • 11.3.1.3. lcd_hv_smode
        • 11.3.1.4. lcd_hv_s888_if
        • 11.3.1.5. lcd_hv_syuv_if
        • 11.3.1.6. lcd_cpu_if
        • 11.3.1.7. lcd_lvds_bitwidth
        • 11.3.1.8. lcd_lvds_mode
      • 11.3.2. 时序参数说明
        • 11.3.2.1. lcd_x
        • 11.3.2.2. lcd_y
        • 11.3.2.3. lcd_ht
        • 11.3.2.4. lcd_hbp
        • 11.3.2.5. lcd_vt
        • 11.3.2.6. lcd_vbp
        • 11.3.2.7. lcd_hv_hspw
        • 11.3.2.8. lcd_hv_vspw
        • 11.3.2.9. lcd_dclk_freq
        • 11.3.2.10. lcd_io_cfg0
      • 11.3.3. 其他参数说明
        • 11.3.3.1. lcd_pwm_freq
        • 11.3.3.2. lcd_gamma_correction_en
        • 11.3.3.3. lcd_gamma_tbl
    • 11.4. 屏文件实例
  • -. 全志相关工具和资源
    • -.1 全志固件镜像修改工具 ImageModify.exe 下载
    • -.2 全志固件USB刷机工具 PhoenixSuit 下载
    • -.3 全志Melis2.0 用户手册.pdf下载
    • -.4 全志melis2.0 sdk源码库下载

编写目的

本文档是全志 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>

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、打开 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}

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);
}

实现了 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 panelkgm281i0_write_gram_origin(sel); //set gram originLCD_CPU_register_irq(sel,Lcd_cpuisr_proc); //resgister cpu irq funcLCD_CPU_AUTO_FLUSH(sel,1); //start sent gram data}

区别于模拟串行接口的初始化,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;
}

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;

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);
};
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149618.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟机联网

桥接 桥接模式就是虚拟机与你的电脑平起平做&#xff0c;都有同样的IP&#xff0c;且与你的电脑在同一网段下&#xff0c;就能够上网。 电脑的IP的地址 虚拟机的ip地址 设置vm1的ip地址与网关与电脑相同 如果出现ssh连接虚拟机不成功的问题&#xff0c;无其他问题时&#xff0…

Next.js 入门笔记

前言 之前初步体验了 React 的魅力, 又看文档理解了一下 useState 和 useEffect, 目前初步理解的概念是: useState 用来声明在组件中使用并且需要修改的变量 useEffect 用来对 useState 声明的变量进行初始化赋值 可能理解的不太准确, 不过大概差不多是这么个意思. 但是再往后…

React项目部署 - Nginx配置

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

012-第二代硬件选型

第二代硬件选型 文章目录 第二代硬件选型项目介绍重新换平台缘由X86 && Arm 架构切换 ARM Linux 硬件选型系统确定Qt 版本确定总结一下 关键字&#xff1a; Qt、 Qml、 Arm、 X86、 linux 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QM…

国庆day2---select实现服务器并发

select.c&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)#define IP "192.168.1.3" #define PORT 8888int main(int argc, const char *argv[]) {//创建报式套接字socketi…

华为云云耀云服务器L实例评测|部署个人音乐流媒体服务器 navidrome

华为云云耀云服务器L实例评测&#xff5c;部署个人音乐流媒体服务器 navidrome 一、云耀云服务器L实例介绍1.1 云服务器介绍1.2 产品规格1.3 产品优势1.4 支持镜像 二、云耀云服务器L实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 navidrome3.1 navidrome 介绍3.…

区别对比表:阿里云轻量服务器和云服务器ECS对照表

阿里云轻量应用服务器和云服务器ECS区别对照表&#xff0c;一看就懂的适用人群、使用场景、优缺点、使用限制、计费方式、网路和镜像系统全方位对比&#xff0c;阿里云服务器网分享ECS和轻量应用服务器区别对照表&#xff1a; 目录 轻量应用服务器和云服务器ECS区别对照表 轻…

字符串函数的模拟实现

引言&#xff1a;对于字符串来说&#xff0c;我们通常想要对其完成各种各样的目的&#xff0c;不管是排序还是查找都是最普遍的功能&#xff0c;而我们的C语言中也包含着一系列函数是为了实现对字符串的一些功能&#xff0c;今天我们就来介绍他们。 strlen函数&#xff1a; 求字…

网课搜题 小猿题库多接口微信小程序源码 自带流量主

多接口小猿题库等综合网课搜题微信小程序源码带流量主&#xff0c;网课搜题小程序, 可以开通流量主赚钱 搭建教程1, 微信公众平台注册自己的小程序2, 下载微信开发者工具和小程序的源码3, 上传代码到自己的小程序 源码下载&#xff1a;https://download.csdn.net/download/m0_…

计算机网络笔记3 数据链路层

计算机网络系列笔记目录&#x1f447; 计算机网络笔记6 应用层计算机网络笔记5 运输层计算机网络笔记4 网络层计算机网络笔记3 数据链路层计算机网络笔记2 物理层计算机网络笔记1 概述 文章前言 &#x1f497; 站在巨人的肩膀上&#xff0c;让知识的获得更加容易&#xff01…

Python爬虫——爬虫基础模块和类库(附实践项目)

一、简单介绍 Python爬虫是使用Python编程语言开发的一种自动化程序&#xff0c;用于从互联网上获取信息。通过模拟浏览器的行为&#xff0c;爬虫可以访问网页、解析网页内容&#xff0c;并提取所需的数据。 python的爬虫大致可以分为通用爬虫和专用爬虫&#xff1a; 通用爬虫…

Linux 基本语句_5_创建静态库|动态库

静态库 创建主函数&#xff1a;main.c 应用函数&#xff1a;add.c、sub.c、mul.c 创建calc.h文件作为头文件 生成可执行文件*.o文件 gcc -c add.c -o add.o ....包装*.o文件为静态库 ar -rc libmymath.a add.o sub.o mul.o编译静态库并指明创建静态库的位置 sudo gcc mai…

Python操作MongoDb创建文档及CRUD基本操作

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 Python3数据科学包系列(三):数据分析实战 MongoDB 操作手册----文档…

git提交代码实际操作

1.仓库的代码 2.克隆代码下存在的分支 git clobe https://gitee.com/sadsadasad/big-event-11.git 3.查看当下存在的分支 git branch -a 在很多情况下,我们是要围绕着dev分支进行开发,所以我们可以在开发之前问明白围绕那个分支进行开发。 4.直接拉去dev分支代码 5.如果没在…

程序三高的方法

程序三高的方法 目录概述需求&#xff1a; 设计思路实现思路分析1.1&#xff09;高并发 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,c…

安卓教材学习

文章目录 教材学习第一行代码 Android 第3版环境配置gradle配置下载包出现问题 教材学习 摘要&#xff1a;选了几本教材《第一行代码 Android 第3版》&#xff0c;记录一下跑案例遇到的问题&#xff0c;和总结一些内容。 第一行代码 Android 第3版 环境配置 gradle配置 gradl…

人机关系不是物理关系也不是数理关系

人机关系是一种复杂的社会技术系统&#xff0c;涉及到人类和机器、环境之间的相互作用和影响。它不仅限于物理接触和数理规律&#xff0c;同时还包括了思维、情感、意愿等方面的交流和互动。在人机关系中&#xff0c;人类作为使用者和机器作为工具&#xff08;将来可能会上升到…

【网站】让自己的个人主页能被Google检索

参考&#xff1a; https://zhuanlan.zhihu.com/p/129022264

JUC第十五讲:JUC集合-ConcurrentHashMap详解(面试的重点)

JUC第十五讲&#xff1a;JUC集合-ConcurrentHashMap详解 本文是JUC第十五讲&#xff1a;JUC集合-ConcurrentHashMap详解。JDK1.7之前的ConcurrentHashMap使用分段锁机制实现&#xff0c;JDK1.8则使用数组链表红黑树数据结构和CAS原子操作实现ConcurrentHashMap&#xff1b;本文…

1.3.OpenCV技能树--第一单元--图像的基础操作(基础篇)

文章目录 1.文章内容来源2.图像的基本操作2.1.图像加载2.2.图像显示2.3.数据读取2.4.截取图像2.5.颜色通道提取2.5.1.保留红色处理2.5.2.保留绿色处理2.5.3.保留蓝色处理 3.易错点总结与反思 1.文章内容来源 1.题目来源: 2.资料来源:https://edu.csdn.net/skill/opencv/opencv…