uboot之logo显示

一、logo的调用流程

 

|-->board_init_r: < board.c>

         |--> stdio_init: <common/stdio.c>

                |--> drv_lcd_init:<common/lcd.c>

                      |--> lcd_init: <common/lcd.c>

                            |--> lcd_ctrl_init: drivers/video/<与硬件相关 >

                            |-->lcd_clear();

                                |-->lcd_logo()<显示图片>

                                   |-->bitmap_plot(0,85);<将图片读取到frambuffer>

二、读取bitmap写入frambuffer

 

1、  首先将图片数组的首地址赋给bmap。

 

      bmap = &bmp_logo_bitmap[0];

 

 

 

 

2、  然后将图片数组数据写入frambuffer,然后显示

 

	if(NBITS(panel_info.vl_bpix) == 16){
			u16 col16;
			fb16 = (ushort *)fb;
			for (i = 0; i < BMP_LOGO_HEIGHT; ++i) {
				for (j = 0; j < BMP_LOGO_WIDTH; j++) {
					col16 = bmp_logo_palette[(bmap[j]-16)];
					fb16[j] =
						((col16 & 0x000F) << 1) |
						((col16 & 0x00F0) << 3) |
						((col16 & 0x0F00) << 4);
					}
				bmap += BMP_LOGO_WIDTH;
				fb16 += panel_info.vl_col;
			}
		}

 

 

 

 

 

 

备注:

 

1、图片转化函数:\tools\bmp-logo.c  将bmp文件转化为二维数组bmp_logo_bitmap[](\include\bmp_logo_data.h)

 

2、通过makefile查到驱动文件\u-boot\drivers\video\jz_lcd\lcd_panel/truly_tft240240_2_e.c 

 

3、  改变图片显示的首地址:比如第85行开始显示

 bitmap_plot(0, 85);--------------   common\lcd.c

 

4、Include\Bmp_logo.h 定义图片大小也是\tools\bmp-logo.c生成的。

 

#defineBMP_LOGO_WIDTH                   240
#defineBMP_LOGO_HEIGHT                 70
#define BMP_LOGO_COLORS               240
#defineBMP_LOGO_OFFSET                 16

 

 

 

 

 

 

5、Include\Bmp_logo_data.h保存图片的二维数组,由\tools\bmp-logo.c生成的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值