1.概述
在上一篇《U-boot驅(qū)動(dòng)-DPU驅(qū)動(dòng)移植》中,以ARM Mali系列顯示處理器驅(qū)動(dòng)為例,講述了U-boot的DPU驅(qū)動(dòng)移植方法。本文在DPU驅(qū)動(dòng)已經(jīng)完成移植的基礎(chǔ)上,講述了SPLASH_SCREEN(啟動(dòng)畫面)驅(qū)動(dòng)移植方法。
示例U-boot版本:2022.10。硬件平臺(tái):ARM SOC。
2.原理
U-boot集成了SPLASH_SCREEN驅(qū)動(dòng)源碼,當(dāng)使能和配置SPLASH_SCREEN驅(qū)動(dòng)后,可以將啟動(dòng)畫面使用的圖片文件轉(zhuǎn)換為位圖數(shù)據(jù)數(shù)組,并將位圖數(shù)據(jù)數(shù)組首先存儲(chǔ)到指定的內(nèi)存空間,然后將該內(nèi)存空間的位圖數(shù)據(jù)復(fù)制到DPU驅(qū)動(dòng)對(duì)應(yīng)的framebuffer內(nèi)存空間,作為啟動(dòng)畫面供U-boot啟動(dòng)時(shí)顯示。
3.移植方法
3.1編譯配置
以將32BPP格式圖片編譯進(jìn)U-boot鏡像文件作為啟動(dòng)畫面為例,講述配置方法。
使能CONFIG_VIDEO_LOGO,以使能將啟動(dòng)畫面對(duì)應(yīng)的位圖數(shù)據(jù)數(shù)組bmp_logo_bitmap[]存儲(chǔ)到指定的內(nèi)存空間。使能的函數(shù)及配置界面如下:
./common/splash.c中splash_video_logo_load()函數(shù)。
圖1 使能CONFIG_VIDEO_LOGO
為使能啟動(dòng)畫面顯示功能,使能如下配置:
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,以使能啟動(dòng)畫面的位置對(duì)齊設(shè)置功能。
圖4 使能CONFIG_SPLASH_SCREEN_ALIGN
3.2參數(shù)配置
定義宏CONFIG_EXTRA_ENV_SETTINGS,用于設(shè)置啟動(dòng)畫面的環(huán)境變量,詳見參考文獻(xiàn)[3]和[4],添加如下參數(shù):
(1)"splashimage=0xXXXXXXXX?",表示第2節(jié)所述啟動(dòng)畫面對(duì)應(yīng)的位圖數(shù)據(jù)的存儲(chǔ)地址;
(2)"splashpos=m,m?",表示設(shè)置啟動(dòng)畫面的對(duì)齊方式為居中,可以按需修改對(duì)齊方式。
3.3啟動(dòng)畫面使用的圖片設(shè)置
(1)將啟動(dòng)畫面使用的圖片放置于./tools/logos下;
(2)在./tools/Makefile 設(shè)置啟動(dòng)畫面使用的圖片路徑,默認(rèn)使用denx.bmp。
圖5 啟動(dòng)畫面使用的圖片路徑配置代碼
4.驗(yàn)證方法
4.1啟動(dòng)畫面顯示測(cè)試
以使用32BPP格式圖片作為啟動(dòng)畫面為例,修改上文圖5的./tools/Makefile中啟動(dòng)畫面使用的圖片默認(rèn)路徑,將8BPP格式的denx.bmp改為32BPP格式的u-boot_logo.bmp;然后編譯U-boot。
U-boot啟動(dòng)后,顯示居中的啟動(dòng)畫面,即表示SPLASH_SCREEN驅(qū)動(dòng)功能正常。
-
處理器
+關(guān)注
關(guān)注
68文章
19348瀏覽量
230260 -
ARM
+關(guān)注
關(guān)注
134文章
9107瀏覽量
367987 -
soc
+關(guān)注
關(guān)注
38文章
4180瀏覽量
218489 -
移植
+關(guān)注
關(guān)注
1文章
379瀏覽量
28150 -
u-boot
+關(guān)注
關(guān)注
0文章
121瀏覽量
38240
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論