1.概述
在上一篇《U-boot驱动-DPU驱动移植》中,以ARM Mali系列显示处理器驱动为例,讲述了U-boot的DPU驱动移植方法。本文在DPU驱动已经完成移植的基础上,讲述了SPLASH_SCREEN(启动画面)驱动移植方法。
示例U-boot版本:2022.10。硬件平台:ARM SOC。
2.原理
U-boot集成了SPLASH_SCREEN驱动源码,当使能和配置SPLASH_SCREEN驱动后,可以将启动画面使用的图片文件转换为位图数据数组,并将位图数据数组首先存储到指定的内存空间,然后将该内存空间的位图数据复制到DPU驱动对应的framebuffer内存空间,作为启动画面供U-boot启动时显示。
3.移植方法
3.1编译配置
以将32BPP格式图片编译进U-boot镜像文件作为启动画面为例,讲述配置方法。
使能CONFIG_VIDEO_LOGO,以使能将启动画面对应的位图数据数组bmp_logo_bitmap[]存储到指定的内存空间。使能的函数及配置界面如下:
./common/splash.c中splash_video_logo_load()函数。
图1 使能CONFIG_VIDEO_LOGO
为使能启动画面显示功能,使能如下配置:
CONFIG_SPLASH_SCREEN和CONFIG_CMD_BMP,
使能CONFIG_BMP_32BPP,以支持32BPP格式图片。配置界面如下。
图2 使能CONFIG_SPLASH_SCREEN和CONFIG_BMP_32BPP
图3 使能CONFIG_CMD_BMP
使能CONFIG_SPLASH_SCREEN_ALIGN,以使能启动画面的位置对齐设置功能。
图4 使能CONFIG_SPLASH_SCREEN_ALIGN
3.2参数配置
定义宏CONFIG_EXTRA_ENV_SETTINGS,用于设置启动画面的环境变量,详见参考文献[3]和[4],添加如下参数:
(1)"splashimage=0xXXXXXXXX�",表示第2节所述启动画面对应的位图数据的存储地址;
(2)"splashpos=m,m�",表示设置启动画面的对齐方式为居中,可以按需修改对齐方式。
3.3启动画面使用的图片设置
(1)将启动画面使用的图片放置于./tools/logos下;
(2)在./tools/Makefile 设置启动画面使用的图片路径,默认使用denx.bmp。
图5 启动画面使用的图片路径配置代码
4.验证方法
4.1启动画面显示测试
以使用32BPP格式图片作为启动画面为例,修改上文图5的./tools/Makefile中启动画面使用的图片默认路径,将8BPP格式的denx.bmp改为32BPP格式的u-boot_logo.bmp;然后编译U-boot。
U-boot启动后,显示居中的启动画面,即表示SPLASH_SCREEN驱动功能正常。
全部0条评论
快来发表一下你的评论吧 !