修改u-boot的開機logo及顯示過程
[ u-boot: git://git.denx.de/u-boot.git] [tag: v2011.09-rc1 ]
修改u-boot的開機logo其實很簡單。請見下面步驟。
1. 獲取一張BMP的圖片,修改之,讓其色深為8位,即256色,如果用24位,則顯示出問題,(至於是否能用24位,有待深究)。
2. 將製作好的BMP圖片,放置到<u-boot>/tools/logos下面。
3. 修改<u-boot>/tools/Makefile中的LOGO_BMP,使其指向你的bmp圖片。如:LOGO_BMP= logos/test.bmp (此名應該放到:LOGO_BMP賦值的最後,否則會被覆蓋掉)
----------------------------------------------------------------------------
ifeq ($(LOGO_BMP),)
LOGO_BMP= logos/denx.bmp
endif
<snip>
ifeq ($(VENDOR),intercontrol)
LOGO_BMP= logos/intercontrol.bmp
endif
LOGO_BMP= logos/test.bmp
----------------------------------------------------------------------------
注:此處的VENDOR資訊是從<boards.cfg>檔案中來。
重新編譯u-boot, 生成u-boot.bin,然後放到板子上進行測試。
下面將詳細分析logo的顯示過程。
1. <arch/arm/cpu/arm926ejs/start.S>
|--> board_init_r: <arch/arm/lib/board.c> (Note: new u-boot implement this in board_init_f)
|--> stdio_init: <common/stdio.c>
|--> drv_lcd_init: <common/lcd.c>
|--> lcd_init: <common/lcd.c>
|--> lcd_ctrl_init: drivers/video/<hardware_relative>
|--> lcd_clear:
|--> lcd_logo: <common/lcd.c>
|--> bitmap_plot
|--> lcd_show_board_info
|--> lcd_enable: <board> 相關程式碼。
轉載:http://blog.csdn.net/voice_shen/article/details/6789424