Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29097
  • 博文数量: 46
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 25
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-09 16:58
个人简介

钟爱嵌入式,为嵌入式奋斗

文章存档

2014年(46)

我的朋友

分类: LINUX

2014-08-05 10:05:14

uboot下可以通过命令访问和修改环境变量,但是如果需要在Linux系统下访问这些数据该怎么办呢?其实uboot早就帮我们想好了。

1、编译fw_printenv工具
在你使用的uboot代码中用以下编译指令:

  1. make env
这样就可以编译tools/env下的代码,编译出的fw_printenv工具有读写uboot环境变量区的能力。这个工具是针对目标机的,也就是说如果你的uboot代码之前是针对ARM编译的话,fw_printenv也是交叉编译给ARM芯片的。

2、安装fw_printenv工具
到/tools/env目录中,将编译好的fw_printenv拷贝到目标机的文件系统中,并通过"ln -s fw_printenv fw_setenv",创建一个fw_setenv到fw_printenv的软链。

这个工具还需要一个配置文件,以获取uboot的ENV区域的位置信息。默认状态下,请将fw_env.config文件拷贝到目标机的文件系统的/etc目录下。然后结合uboot配置中定义的ENV区和Linux下mtd分区的情况修改配置文件。具体的修改方法见fw_env.config文件中的说明及/tools/env/README文件。

3、fw_printenv工具的使用
其实fw_printenv使用起来和uboot下的printenv和setenv指令是一模一样的。
  • 打印uboot环境变量:

  1. fw_printenv [[ -n name ] | [ name ... ]]

  2. # ./fw_printenv -n baudrate
  3. 115200
  4. # ./fw_printenv baudrate
  5. baudrate=115200
  6. 如果不指定name,fw_printenv会打印出ENV区中的所有环境变量

  • 设置uboot环境变量:

  1. fw_setenv name [ value ... ]
  2. 如果不指定value,表示要删除这个name的环境变量。

  3. # ./fw_setenv temp tekkaman
  4. # ./fw_printenv -n temp
  5. tekkaman
  6. # ./fw_setenv temp
  7. # ./fw_printenv -n temp
  8. ## Error: "temp" not defined

阅读(111) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~