免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3000 | 回复: 6

[BootLoader] u-boot参数的一个问题 [复制链接]

论坛徽章:
0
发表于 2011-05-31 11:30 |显示全部楼层
以下是u-boot的部分参数:
baudrate=115200
ethaddr=00:40:95:36:35:10
netmask=255.255.255.0
serverip=192.168.80.99
ipaddr=192.168.80.88
stdin=serial
stdout=serial
stderr=serial

Environment size: 345/131068 bytes

我的疑问是: 最后一项Environment size: 345/131068 bytes  是什么意思?后面的两个大小是什么的大小?

论坛徽章:
0
发表于 2011-06-01 23:58 |显示全部楼层
一个是总大小,和使用大小了吧

论坛徽章:
0
发表于 2011-06-02 15:53 |显示全部楼层
同意2楼的

论坛徽章:
0
发表于 2011-06-03 20:51 |显示全部楼层
本帖最后由 crifan 于 2011-06-03 21:00 编辑

345/131068 bytes  = 当前所用大小/分配给环境变量的总大小

其中,分配给环境变量的总大小,对应着你开发板的头文件中的那个宏的定义,
uboot-1.1.6中,是类似于这样的:
#define CFG_ENV_OFFSET                        0x40000

新版的uboot,比如uboot-2011.03中,变量名改了,是类似这样的:
#define CONFIG_ENV_SIZE                        0x1000

此宏的大小,一般都是对应着flash的一个sector的大小:
nand flash:即block大小,常见为128K/256K/512K。。。
nor flash:常见为16K/32K/....

有时间的话,最好多看看uboot源码,从开发板的头文件看起,每个宏,都搜索一下在哪里被引用的,这样代码看的多了,自然会逐步深入了解。

对应代码:
1.1.6:
  1. int do_printenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  2. {
  3. 。。。
  4.                 printf("\nEnvironment size: %d/%d bytes\n", i, ENV_SIZE);

  5.                 return 0;
  6. ...
  7. }
复制代码
2011.03:
  1. int do_env_print (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
  2. {
  3. ....
  4.                 printf("\nEnvironment size: %d/%ld bytes\n",
  5.                         rcode, (ulong)ENV_SIZE);
  6. 。。。
  7. }
复制代码

论坛徽章:
0
发表于 2011-06-04 09:30 |显示全部楼层
回复 4# crifan


    非常感谢!确实我越来越发现看源码的重要性了。

论坛徽章:
0
发表于 2011-06-05 01:49 |显示全部楼层
回复 4# crifan


    不错,学习了!

论坛徽章:
0
发表于 2011-06-05 16:07 |显示全部楼层
多学学
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP