Bootlogo使用指南


1. 概述

bootlogo是开机时显示的画面,可以显示在各种LCD屏上,包括TTL,BT656,SRGB,也可以显示在MIPI屏幕上。

本文将介绍bootlogo如何配置与使用。


2. 编译配置选项

cd boot
make menuconfig
Command line interface ---> SigmaStar common commands ---> bootlogo

2.2 partition select

ARM architecture ----> SigmaStar arch features support

logo partition name: 该分区存放图片、屏参(config.json)和logo_configuration.json。

2.3 open drivers

2.3.1 pwm

如果背光需要用pwm控制,那么需要开启PWM驱动

SigmaStar drivers ----> SigmaStar PWM

2.3.2 cjson parser

SigmaStar drivers ----> Sigmastar CJSON FILE PARSER

2.3.3 open camdriver module

SigmaStar drivers ----> Sigmastar camdriver ----> Sigmastar DISP driver
SigmaStar drivers ----> Sigmastar camdriver ----> Sigmastar JPD driver

如果使用gop显示,那么需要开启

SigmaStar drivers ----> Sigmastar camdriver ----> Sigmastar RGN driver

2.4 file systems

File systems ----> Support Firmware FileSystem

如果存储介质使用的是emmc,需把Use firmwarefs on emmc/sdcard device也选中,否则不可选中。

2.5 Open bootlogo requires files

cd project
make menuconfig
Misc options ----> BOOTLOGO----> Support BOOTLOGO


3. logo reserved buffer

该buffer用于bootlogo显示,如果kernel没有操作或者释放这段地址,那么将一直维持显示。

project/configs/verify/defconfigs/$(project_defconfig)

"CONFIG_LOGO_MEM_SIZE":logo显示存放的地址配置大小

上述设定完成后,可在烧录完成的板端查看对应的uboot环境变量。如下图所示:


4. padmux

屏幕点屏需要设置padmux

boot/arch/arm/dts/$(boardname)-padmux.dtsi

例如需要点TTL屏,那么只需要将#if 0更改为#if 1,如下图所示


project/board/ini/misc/$(logo_name)

若想将图片默认放进misc分区,可以修改如下位置:

project/image/packaging/common/misc.mk

也可以在板子启动后将图片copy到misc分区。


相关文件路径:

project/board/$(chip)/$(boardname)/config/config_disp.json
project/board/ini/misc/logo_configuration.json

config_disp.json存放屏参,logo_configuration.json指定屏参、屏幕类型等。

logo_configuration.json主要包括如下参数:

参数 描述
device_type 屏幕类型 TTL/MIPI/BT656/SRGB/MCU/MCU_NOFLM
param_target 屏参名称
dev_id device id
rotate 旋转参数
0:0°
90:90°
180:180°
270:270°
file_name logo图片名称

bootlogo会根据param_target在config_disp.json文件中找到对应的屏参并做解析。

logo_file子节点的顺序对应logo id的顺序,第一个子节点对应logo id 0。

config_disp.json可设置背光的相关参数,如下图

参数 描述
power_gpio gpio id of power pin
power_gpio_value power pin level
0: gpio active low
1: gpio active high
power_gpio_delay power pin的延时时间,单位是ms
reset_gpio gpio id of reset pin
reset_gpio_value reset pin level
0: gpio active low
1: gpio active high
reset_gpio_delay reset pin的延时时间,单位是ms
backlight_gpio gpio id of backlight pin
backlight_gpio_value backlight pin level
0: gpio active low
1: gpio active high
backlight_gpio_delay backlight pin的延时时间,单位是ms
pwm_channel The channel of pwm
pwm_period pwm period, 单位是ns
backlight_percent Backlight brightness percentage

注:backlight gpio是为不需要pwm控制背光预留的,可以通过拉gpio pin开启背光。

如果使用pwm配置背光,除了配置pwm_channel、pwm_period、backlight_percent,还需配置uboot的pwm padmux。pwm config必须开启:pwm config

pwm channel查询方法请参考pwm doc

如果有特殊的上下电时序,请结合屏参说明4.2节


bootlogo [logo_id] [aspect ratio] [x] [y] [device_id]

logo_id     : image id. default is 0

aspect_ratio: 0: zoom, 1: center, 2: usr. default is 0

x           : show horizontal start. it's valid when aspect_ratio is 2. default is 0

y           : show vertical start. it's valid when aspect_ratio is 2. default is 0

device_id   : device ID. default is 0

示例:

bootlogo             // 不带参,默认参数全为0

bootlogo 1           // logo选择第二张显示,其他参数默认0

bootlogo 0 1         // logo选择第一张,图像比例居中

bootlogo 0 2 1 1     // logo选择第一张,图像从(1,1)开始显示

bootlogo 0 0 0 0 0   // device id为0

注:aspect ratio功能需要输入图片的size小于屏幕输出的size,才能正常使用。本芯片只有一路device,device_id只能填0。

8. 升级画面命令介绍

8.1 升级画面命令

注:升级画面显示需开启GOP配置,开启配置参考open gop

disp_ui_update [percentage/success/fail] [device_id]

percentage: percentage. range [0, 100]

device_id : device ID. default is 0

示例:

disp_ui_update 10      // 进度条为10%

disp_ui_update success // 升级成功

disp_ui_update fail    // 升级失败

8.2 画UI的单独命令

disp_ui bar [percentage] [bar_color] [text_color] [bg_color] [device_id]

bar       : 画进度条

percentage: percentage. range [0, 100]

bar_color : show bar color. fmt is rgb(bit[23, 0]). default is green

text_color: show text color. default is white

bg_color  : show bar background. default is blue

device_id : device ID. default is 0

示例:

disp_ui bar 10                            // 进度条为10%

disp_ui bar 10 0xff00                     // 10%的进度条颜色为绿色

disp_ui bar 10 0xff00 0xffffff            // 10%的进度条颜色为绿色,10%字符为白色

disp_ui bar 10 0xff00 0xffffff 0xffffff   // 进度条背景色为白色,10%的进度条颜色为绿色,10%字符为白色

disp_ui bar 10 0xff00 0xffffff 0xffffff 0 // device id为0
disp_ui msg [text] [x] [y] [text_color] [bg_color] [device_id]

msg       : 画字符

text      : ascii text. default is blank

x         : show text horizontal start. default is 0

y         : show text vertical start. default is 0

text_color: show text color. default is white

bg_color  : show bar background. default is blue

device_id : device ID. default is 0

示例:

disp_ui msg update                 \\ 画字符"update",默认从(0,0)开始画

disp_ui msg update 1 1              \\ 从(1,1)开始画字符"update"

disp_ui msg update 1 1 0xffffff      \\ 字符颜色为白色

disp_ui msg update 1 1 0x0 0xffffff  \\ 字符颜色黑色,背景颜色白色

disp_ui msg update 1 1 0x0 0xffffff 0 \\ device id为0
disp_ui blank [x] [y] [w] [h] [BlankColor] [device_id]

blank     : 擦除

x         : erase horizontal start. default is 0

y         : erase vertical start. default is 0

w         : erase the length. default is 0

h         : erase the width. default is 0

BlankColor: erase the color. default is blue

device_id : device ID. default is 0

示例:

disp_ui blank 1 1 10 10 \\ 擦除起点(1,1)宽高为10的面积,颜色为蓝色

disp_ui blank 1 1 10 10 0xffffff \\ 擦除颜色为黑色

disp_ui blank 1 1 10 10 0xffffff 0 \\ device id为0