U-boot開機logo的製作方法
阿新 • • 發佈:2018-11-02
http://blog.csdn.net/hanmengaidudu/article/details/16983255
這個logo預設情況(只定義了 CONFIG_VIDEO_LOGO )是如上圖所示的企鵝(如果還定義了 CONFIG_VIDEO_BMP_LOGO 會是denx的標誌),這個是存在於uboot程式碼中的一個頭檔案(
一、準備一張jpeg圖片,通過命令列處理為8bit BMP圖片。
- #!/bin/sh
- #install Netpbm first
- jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2
之所以用jpeg轉bmp的辦法,是通過實驗證明這種方面可行且簡便。
二、將bmp檔案放入/tools/logos中,並修改/tools/下的Makefile
- # Generated LCD/video logo
- LOGO_H = $(OBJTREE)/include/bmp_logo.h
- LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
- LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
- ifeq ($(LOGO_BMP),)
- LOGO_BMP= logos/denx.bmp
- endif
- ifeq ($(VENDOR),atmel)
- LOGO_BMP= logos/atmel.bmp
- endif
- ifeq ($(VENDOR),esd)
- LOGO_BMP= logos/esd.bmp
- endif
- ifeq ($(VENDOR),freescale)
- LOGO_BMP= logos/freescale.bmp
- endif
- ifeq ($(VENDOR),ronetix)
- LOGO_BMP= logos/ronetix.bmp
- endif
- ifeq ($(VENDOR),syteco)
- LOGO_BMP= logos/syteco.bmp
- endif
三、確認配置檔案 一定要定義
- #define CONFIG_VIDEO_LOGO
- #define CONFIG_VIDEO_BMP_LOGO
四、重新編譯u-boot即可得到顯示新logo的u-boot。
效果如下圖所示: 由於是8bit色深,顏色就有點怪~
如果你看了drivers/video/cfb_console.c原始碼,你可能會發現還有一個splashimage的東東可以顯示。是的,如果你有張非壓縮的BMP圖片放在了Nor Flash,你可以在ENV中設定splashimage和splashpos告訴uboot讀取和顯示的位置。啟動的時候,uboot就會顯示這個bmp圖片。 但是,原生的uboot是隻支援Nor Flash和核心的讀取的,如果你的圖片放在nand flash、SD卡或者SPI、I2C 介面flash中,你可以自己實現將圖片檔案讀取到記憶體中,然後再顯示splash。實現起來並不複雜,關鍵是使用相關的API函式來讀取資料。