海思提供的uboot是支持开机启动画面的,在提供的帮助文档中提到了一些命令来实现该功能:
setenv jpeg_addr 0x800C0000
setenv jpeg_size 0x10000
setenv vobuf 0xC7160000
接下来需用tftp下载图片到指定的内存地址中,注意这里的地址必须是一个有效的地址,要不然图片载入不成功。
烧写开机画面:
tftp 0x800C0000 logo.jpg
protect off 0x800C0000 0x800fffff
erase 0x800C0000 0x800fffff
tftp 0x800C0000 logo.jpg
接下来就是解码和显示:
decjpeg
startvo 0 2 7
startvo 2 0 0
stopgx 0
stopvo 0
通过命令测试成功了,接下来就是在uboot源码中实现了。
我们是在uboot启动内核之前做的。
修改Cmd_bootm.c中的do_bootm函数,添加如下代码:
char *s=NULL;
long u =0;
long vobufAddr = 0;
s = getenv("vobuf");
if(s)
{
vobufAddr = simple_strtol(s,NULL,0);
}
else
{
p