1. 程式人生 > >修改u-boot的開機logo及顯示過程

修改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