Bootlogo使用指南
1. 概述¶
bootlogo是开机时显示的画面,可以显示在各种LCD屏上,包括TTL,BT656,SRGB,也可以显示在MIPI屏幕上。
本文将介绍bootlogo如何配置与使用。
2. 编译配置选项¶
cd boot make menuconfig
2.1 open bootlogo¶
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,如下图所示
5. logo存放位置¶
project/board/ini/misc/$(logo_name)
若想将图片默认放进misc分区,可以修改如下位置:
project/image/packaging/common/misc.mk
也可以在板子启动后将图片copy到misc分区。
6. bootlogo屏参配置¶
相关文件路径:
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节。
7. bootlogo命令介绍¶
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