U-boot驱动SPLASH_SCREEN驱动移植方法

电子说

1.3w人已加入

描述

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()函数。

ARM处理器

图1 使能CONFIG_VIDEO_LOGO

为使能启动画面显示功能,使能如下配置:

CONFIG_SPLASH_SCREEN和CONFIG_CMD_BMP,

使能CONFIG_BMP_32BPP,以支持32BPP格式图片。配置界面如下。

ARM处理器

图2 使能CONFIG_SPLASH_SCREEN和CONFIG_BMP_32BPP

ARM处理器

图3 使能CONFIG_CMD_BMP

使能CONFIG_SPLASH_SCREEN_ALIGN,以使能启动画面的位置对齐设置功能。

ARM处理器

图4 使能CONFIG_SPLASH_SCREEN_ALIGN

3.2参数配置

定义宏CONFIG_EXTRA_ENV_SETTINGS,用于设置启动画面的环境变量,详见参考文献[3]和[4],添加如下参数:

(1)"splashimage=0xXXXXXXXX\\0",表示第2节所述启动画面对应的位图数据的存储地址;

(2)"splashpos=m,m\\0",表示设置启动画面的对齐方式为居中,可以按需修改对齐方式。

3.3启动画面使用的图片设置

(1)将启动画面使用的图片放置于./tools/logos下;

(2)在./tools/Makefile 设置启动画面使用的图片路径,默认使用denx.bmp。

ARM处理器

图5 启动画面使用的图片路径配置代码

4.验证方法

4.1启动画面显示测试

以使用32BPP格式图片作为启动画面为例,修改上文图5的./tools/Makefile中启动画面使用的图片默认路径,将8BPP格式的denx.bmp改为32BPP格式的u-boot_logo.bmp;然后编译U-boot。

U-boot启动后,显示居中的启动画面,即表示SPLASH_SCREEN驱动功能正常。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分