U-BOOT开机LOGO移植问题 不能全屏
关于开机LOGO的移植在我的U-BOOT-1.3.4移植手册末尾部分有很详细的移植过程,我就不多说这方面的了!
楼主很生气,都发表这么久的帖子了,居然没人下我写的移植手册!
下面是链接:
http://www.armbbs.net/forum.php?mod=viewthread&tid=14358
好啦,进入正题!
在U-BOOT编译的时候,我们的bmp文件(也就是tools/logos/*.bmp文件)会被tools/bmp_logo.c编译出的工具bmp_logo
制作成include/bmp_logo.h,并编译进uboot中。
问题就出在include/bmp_logo.h中的bmp_logo_bitmap数组中,如图所示
图片后半部分,是全零,它直接导致LOGO显示如下
擦,顿时郁闷了......
下面是我的一点点分析:
从上面也可以看出图片的长和宽都能正确读取出来
下面打开tools/bmp_logo.c文件:
int main (int argc, char *argv[])
{
。。。省略
printf ("unsigned char bmp_logo_bitmap[] = {\n");对照bmp_logo.h文件会很清楚,从这里开始存入图片数据
for (i=(b->height-1)*b->width; i>=0; i-=b->width)
{
for (x = 0; x < b->width; x++)
{
b->data[(uint16_t)i + x]=(uint8_t)fgetc(fp)+DEFAULT_CMAP_SIZE;读取数据
}
}
fclose (fp);
for (i=0;i<(b->height*b->width);++i)
{
if ((i%8) == 0)
putchar ('\t');/*每隔8个数据“TAB”对齐一次*/
printf ("0x%02X,%c",b->data,((i%8) ==7)?'\n' :' ');/*填入数据b->data*/
}
printf ("\n"
"};\n\n"
"#endif /* __BMP_LOGO_H__ */\n"
);
return (0);
}
从上面的代码我看不出有什么问题,希望大神帮忙,怎么改成全屏?
你这uboot启动的时候拷贝了多长的数据到内存里边,怀疑你没有拷贝完全所以显示不完全,建议你把LOGO烧到NAND里边,然后uboot起来之后把它读到显存中 embedsky_lhh 发表于 2012-12-17 12:00 static/image/common/back.gif
你这uboot启动的时候拷贝了多长的数据到内存里边,怀疑你没有拷贝完全所以显示不完全,建议你把LOGO烧到NAN ...
你的意思是图像数据并没有完全拷贝到显存吗?这个应该怎么验证呢,我的LOGO是嵌入到U-BOOT中的,无法分离出来!
移植主要是参考Tekkman的文章http://blog.chinaunix.net/uid-20543672-id-3246292.html
编译U-BOOT时,将BMP图片转换成数组bmp_logo_bitmap的程序发生错误。
数组后半部分全是0x00,而且全0 部分刚好是一半(480*272/2),它的总长度为480*272*1字节 dunken 发表于 2012-12-17 16:34 static/image/common/back.gif
你的意思是图像数据并没有完全拷贝到显存吗?这个应该怎么验证呢,我的LOGO是嵌入到U-BOOT中的,无法分离 ...
你最好是分离出来,要不然就要修改uboot镜像的长度配置 本帖最后由 lixiaosch 于 2014-2-25 14:21 编辑
{:2_164:}
页:
[1]