一,圖片的放置路徑
所有的開機logo都放在了/tools/logos之下,所以,把你需要顯示的logo圖片(bmp格式)也放置到該目錄下。根據你所設置的顯示幀緩存的大小,圖片大小有所限制。使用這種方法還有一個限制是:圖片只能是8bpp的bmp圖(參考uboot源碼)。Tekkman文章中所說的“所替換的logo必須和原來的大小、格式一模一樣,否則會出現u-boot使用過程中宕機重啟的後果”,我自己親測中並未遇到,當然,我也並沒有做足夠的測試,只是這並不需要和原圖的大小一模一樣。
二,修改Makefile文件
修改/tools目錄下的Makefile文件
把denx.bmp 替換為你需要顯示的logo圖片的文件名,保存退出,重新編譯uboot。ifeq ($(LOGO_BMP),) LOGO_BMP= logos/denx.bmp endif
三、圖片的轉換腳本
在製作圖片前,請您現確認您的Linux主機上安裝了Netpbm工具包。
sudo apt-get install netpbm
jpegtopnm logo.jpg | ppmquant 31 | ppmtobmp -bpp 8 > logo.bmp
U-Boot中的Splash Screen
U-Boot配置
在U-Boot中使用Splash Screen,可以實現U-Boot啟動後,在LCD上顯示自定義圖片,起到友好的界面顯示作用。使用Splash Screen需要在配置文件中使能BMP圖片功能和SPLASH功能:
#define CONFIG_CMD_BMP
#define CONFIG_SPLASH_SCREEN
#define CONFIG_SPLASH_SCREEN
實例
並且要定義splashimage變量以及在splash變量所定義的地址存放bmp圖片。以2MB的SST30VF1601為例,工32個扇區,規劃如下:
項目
|
地址範圍
|
扇區
|
大小
|
說明
|
U-Boot
|
0x0000 0000 ~ 0x0010 0000
|
0~15
|
1M
| |
參數
|
0x0010 0000 ~ 0x0018 0000
|
16~23
|
512K
| |
splashimage
|
0x0018 0000 ~ 0x0020 0000
|
24~31
|
512K
|
操作
現在要實現splash screen,需要進行操作,先下載一個圖片到內存中,然後擦除FLASH的splashimage區域,接著將圖片寫入splashimage區域,最後設置並保存splashimage環境變量即可。
U-Boot> tftp a0008000 logo.bmp ;下載文件到內存
U-Boot> erase 1:23-31 ;擦除Flash的splashimage區域
U-Boot> cp.b a0008000 00180000 $filesize ;將logo寫到Flash的splashimage區域
U-Boot> setenv splashimage 00180000 ;設置splashimage環境變量
U-Boot> saveenv ;保存環境變量
u-boot啟動後,輸入bmp d $splashimage即可在LCD上顯示logo圖片。為了實現開機就顯示logo,可以修改common/lcd.c文件,在其中加入實現bmp d $splashimage的代碼即可。
自定義u-boot的開機logo的方法
ifeq ($(LOGO_BMP),) LOGO_BMP= logos/denx.bmp endif ifeq ($(VENDOR), atmel) LOGO_BMP= logos/atmel.bmp endif ifeq ($(VENDOR),ronetix) LOGO_BMP= logos/ronetix.bmp endif
refer : http://blog.chinaunix.net/uid-9688646-id-1998453.html
沒有留言:
張貼留言