主题 : 用USB下载uboot,结果uboot太大了,求救!! 复制链接 | 浏览器收藏 | 打印
在各种放弃与追求中前进
级别: 新手上路
UID: 28745
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
综合积分: 24 分
注册时间: 2010-09-16
最后登录: 2012-11-16
楼主  发表于: 2010-09-19 18:26

 用USB下载uboot,结果uboot太大了,求救!!

Enter your selection: v

USB host is connected. Waiting a download.

Length of file is too big : 269256 > 262144

Failed downloading file

修改part
Supervivi> part show

Number of partitions: 4

name            :       offset          size            flag

------------------------------------------------------------

vivi            :       0x00000000      0x00040000      0

param           :       0x00040000      0x00020000      0

kernel          :       0x00060000      0x00500000      0

root            :       0x00560000      0x3fa80000      0

Supervivi> part del vivi

deleted 'vivi' partition

Supervivi> part del param

deleted 'param' partition

Supervivi> part del kernel

deleted 'kernel' partition

Supervivi> part del root

deleted 'root' partition

Supervivi> part add vivi 0x00000000 0x00050000 0

vivi: offset = 0x00000000, size = 0x00050000, flag = 0

Supervivi> part add param 0x00050000 0x00020000 0

param: offset = 0x00050000, size = 0x00020000, flag = 0

Supervivi> part add kernel 0x00070000 0x00500000 0

kernel: offset = 0x00070000, size = 0x00500000, flag = 0

Supervivi> part add root 0x00570000 0x3fa70000 0

root: offset = 0x00570000, size = 0x3fa70000, flag = 0

Supervivi> part save
结果
Found block size = 0x00020000

Erasing...    ... failed
级别: 侠客
UID: 25655
精华: 0
发帖: 86
金钱: 440 两
威望: 88 点
综合积分: 172 分
注册时间: 2010-07-27
最后登录: 2018-12-08
1楼  发表于: 2010-09-20 01:32
我教你一招

我这段时间在弄一个基于uboot下的驱动 什么驱动保密
编译出来后 uboot大小已经超出了sv的传送极限了 就是楼主遇到的问题
如果超出的小 就像你这个

那么你直接去 common这个文件下 把一些你用不到的命令删去 只注释掉makefile 里对应的就可以了 呵呵 别删除代码哦
一般是可以解决你这个问题的

如果下次 你超的比较大了 但是又必须下载这个uboot的话
那么你可以 先用一个现成的又小的uboot  用它的下载功能 usb tftp nfs都可以 这些都没限制 先下到RAM
在使用nand erase ,nand write 300080000 0 4000 这样覆盖原来的uboot 就可以了
在各种放弃与追求中前进
级别: 新手上路
UID: 28745
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
综合积分: 24 分
注册时间: 2010-09-16
最后登录: 2012-11-16
2楼  发表于: 2010-09-21 17:43

 回 1楼(samcctv) 的帖子

谢谢楼上的回复!!
我吧common文件下的一些 *.o,*.c文件删去了,注释了common下Makefile里的COBJ,
编译通过了,但是大小没有变
我是新手,你能具体一点吗,谢了
级别: 侠客
UID: 25655
精华: 0
发帖: 86
金钱: 440 两
威望: 88 点
综合积分: 172 分
注册时间: 2010-07-27
最后登录: 2018-12-08
3楼  发表于: 2010-09-21 23:00
一般情况下 uboot就200Kz左右 再大就+50k

再多裁剪几个 只留几个传输命令如常用的 tftp nfs usbslave(经证明 这个传输不稳定 容易损失数据)
还有nand的读写啊 内存的检查啊 环境变量的检查啊
其他的很多其实也不经常用可以不要


你的uboot到底多大?
在各种放弃与追求中前进
级别: 新手上路
UID: 28745
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
综合积分: 24 分
注册时间: 2010-09-16
最后登录: 2012-11-16
4楼  发表于: 2010-09-25 23:51
Length of file is too big : 269256 > 262144
269256!!
我把Makefile里的common都删了,如下
COBJS-$(CONFIG_CMD_AMBAPP) += cmd_ambapp.o
COBJS-$(CONFIG_SOURCE) += cmd_source.o
COBJS-$(CONFIG_CMD_SOURCE) += cmd_source.o
COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o
COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o
COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o
COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o
COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o
COBJS-$(CONFIG_CMD_CONSOLE) += cmd_console.o
COBJS-$(CONFIG_CMD_CPLBINFO) += cmd_cplbinfo.o
COBJS-$(CONFIG_DATAFLASH_MMC_SELECT) += cmd_dataflash_mmc_mux.o
COBJS-$(CONFIG_CMD_DATE) += cmd_date.o
最后编出来的uboot.bin大小为  264136,还是不够
级别: 侠客
UID: 25655
精华: 0
发帖: 86
金钱: 440 两
威望: 88 点
综合积分: 172 分
注册时间: 2010-07-27
最后登录: 2018-12-08
5楼  发表于: 2010-09-27 09:16
找个别人编译好的uboot
使用它来把你的uboot写进RAM
在用nand 写命令覆盖原来
不知道可不可以 你自己试一试