Xilinx zynq uboot环境变量

版权声明:转载请关注我的公众号-青儿创客基地 https://blog.csdn.net/Zhu_Zhu_2009/article/details/81357488

linux访问uboot环境变量

在uboot的tools/env目录下提供了linux访问环境变量的工具fw_printenv和fw_setenv,配置头文件fw_env.h,

设置CONFIG_FILE从配置文件读取环境变量所在位置,HAVE_REDUND表示使用冗余环境变量,这里都选上,CONFIG_FILE内容为,

# Configuration file for fw_(printenv/setenv) utility.
# Up to two entries are valid, in this case the redundant
# environment sector is assumed present.
# Notice, that the "Number of sectors" is not required on NOR and SPI-dataflash.
# Futhermore, if the Flash sector size is omitted, this value is assumed to
# be the same as the Environment size, which is valid for NOR and SPI-dataflash
# Device offset must be prefixed with 0x to be parsed as a hexadecimal value.

# NOR example
# MTD device name       Device offset   Env. size       Flash sector size       Number of sectors
/dev/mtd1               0x0000          0x20000         0x20000
/dev/mtd2               0x0000          0x20000         0x20000

# MTD SPI-dataflash example
# MTD device name       Device offset   Env. size       Flash sector size       Number of sectors
#/dev/mtd5              0x4200          0x4200
#/dev/mtd6              0x4200          0x4200

# NAND example
#/dev/mtd0              0x4000          0x4000          0x20000                 2

# On a block device a negative offset is treated as a backwards offset from the
# end of the device/partition, rather than a forwards offset from the start.

# Block device example
#/dev/mmcblk0           0xc0000         0x20000
#/dev/mmcblk0           -0x20000        0x20000

# VFAT example
#/boot/uboot.env        0x0000          0x4000

这里配置了/dev/mtd1和/dev/mtd2互为备份。
编译完之后测试发现没有切换分区,由于之前没改代码之前编译过,执行rm .o .a fw_printenv,再编译就可以了,
fw_setenv失败后会用默认环境变量覆盖原有环境变量,这很怕人啊,带解决。

猜你喜欢

转载自blog.csdn.net/Zhu_Zhu_2009/article/details/81357488