1\在调试ok6410 nandflash启动uboot时,需要添加调试信息,导致uboot大于256k
2需要修改下面几个地方
参考资料
在uboot中可以添加文字菜单,但是不够美观。
利用photoshop制作一张jpg菜单图片,在ubuntu中使用jpeg2bmp.sh将jpg图片转换成bmp格式
uboot/tools/bmp_logo.c编译生成的工具bmp_logo可以根据bmp格式图片生成bmp_logo.h,图片的信息存储在数组当中。当图片的分配率越大,转换成的数组越大,导致最后编译的uboot.bin越大。当uboot.bin超过242K时,下载uboot到flash后不可启动。
解决办法:
在uboot/cpu/s3c64xx/start.S中,有这样一段话,可以知道以下代码是将uboot拷贝到ram中执行,并且只拷贝了2个block
copy_from_nand:
mov r10, lr
mov r9, r0
ldr sp, _TEXT_PHY_BASE
sub sp, sp, #12
mov fp, #0
mov r9, #0x1000
bl copy_uboot_to_ram //开始调用C函数
1、copy_uboot_to_ram函数在uboot/cpu/s3c64xx/Nand_cp.c中,定义如下
int copy_uboot_to_ram (void)
{
..............
..............
..............
return nandll_read_blocks(CFG_PHY_UBOOT_BASE, 0x3c000, large_block);
}
注意0x3c000(240K)就是实际拷贝的大小,修改此数值即可。
2、修改uboot/cpu/s3c64xx/Nand_cp.c中nandll_read_blocks()函数与0x3c000有关的所有数值,并改成相应大小。