Table of Contents | ||
---|---|---|
|
This application note explains how to show a static splash image on the display immediately after power-on / reboot. This feature can be used to indicate to the user that the device is alive and running, while the system still continues to boot up.
1. Understanding Static Splash Image Implementation
1.1. U-Boot Display Driver
The existing U-Boot STM32 LTDC driver (drivers/video/stm32/stm32_ltdc.c
) is used to provide support for displaying a splash screen image on the display. By default, the U-Boot LCD display is configured to support the 480x272 resolution. Only true color (24 bpp) images can be displayed by U-Boot. Format of the splash screen image is "PC bitmap, Windows 3.x format, 480 x 272 x 24".
The default configuration for LCD is defined in the arch/arm/dts/stm32h7-som.dts
U-Boot file:
Code Block |
---|
<dc {
status = "okay";
pinctrl-0 = <<dc_pins>;
display-timings {
timing@0 {
clock-frequency = <12000000>;
hactive = <480>;
vactive = <272>;
....... |
1.2. U-Boot Splash Image
The stm32h7-splash-24bpp.bmp
splash image stored in board/emcraft/stm32h7-som
in the U-Boot source tree is used as the default image to be displayed.
2. Manipulating Splash Image
2.1. Installation Script
The system installation kermit script stm32h7-som-prog.kermit
allows to write the splash image to the dedicated UBI volume on the QSPI Flash system partition.
The path to the splash image must be specified in the 4th argument to the script:
Code Block |
---|
./stm32h7-som-prog.kermit <tty> <uboot_img> [rtos_img] [splash_img] |
Note that the installation kermit script updates all system components on the QSPI Flash. The following commands can be used in order to re-install a splash image separately from the U-Boot and FreeRTOS images:
From the U-Boot command interface, call the
loadb
command to load a splash image to SDRAM from the development host via UART using thekermit
utility.From the U-Boot command interface, call the
ubi write $loadaddr splash $filesize
command to copy splash image from SDRAM to the QSPI NAND Flash.
2.2. Updating Splash Image
Perform the following step-wise procedure to update a splash image on the STM32H7 SOM:
Boot the board to the U-Boot command line. To do so, reset the unit and interrupt the boot sequence by pressing any key on the serial console.
From the U-Boot command monitor, issue the
loadb
command.On the development host, exit the terminal application connected to the U-Boot serial console to free UART interface for the
kermit
utility.Upload a splash screen image to SDRAM from the development host via UART using the
kermit
utility:Code Block $ kermit C-Kermit> set line /dev/ttyUSB0 C-Kermit> set speed 115200 C-Kermit> set carrier-watch off C-Kermit> set flow-control none C-Kermit> set prefixing all C-Kermit> send stm32h7-splash-24bpp.bmp C-Kermit> exit
On the development host, re-connect to the U-Boot serial console with a terminal application.
Issue the
ubi write $loadaddr splash $filesize
command to copy the splash image from SDRAM to QSPI NAND Flash.Reboot the target board and validate that the splash screen image is displayed.