u-boot参数的一个问题

发布于 2022-10-15 05:38:18 字数 351 浏览 16 评论 0

以下是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  是什么意思?后面的两个大小是什么的大小?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

允世 2022-10-22 05:38:18

一个是总大小,和使用大小了吧

格子衫的從容 2022-10-22 05:38:18

同意2楼的

情绪操控生活 2022-10-22 05:38:18

本帖最后由 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. }

复制代码

嘦怹 2022-10-22 05:38:18

回复 4# crifan

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

孤蝉 2022-10-22 05:38:18

回复 4# crifan

    不错,学习了!

酸甜透明夹心 2022-10-22 05:38:18

多学学

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文