uboot环境变量配置

uboot默认环境变量配置启动

  • 进入uboot/include/configs目录下面
    打开 xxxxconfig.h(自定义uboot头文件名),配置文件中有很多的定义,根据具体的情况定义

  • 根据配置,编译uboot


uboot的自定义配置

  • 在uboot下面的board.c
/* initialize environment */if (should_load_env())env_relocate();elseset_default_env(NULL);

代码选择不同的环境变量,因此可以通过自定义cfg文件,来让uboot读取,因此需要在cfg文件定义环境变量在flash的哪个分区,也就是mtdparts变量

  • flash分区
    flash分区可以自定义,但uboot分区在第一个,以下是常见的分区排布方式:

uboot+DTB+kernel+rootfs+自定义分区

  • 可以在分区中指定一个uboot的环境变量分区env
    mtdparts=mtdparts=spi0.0:220k@0x0(uboot),4k@0x10000(env),128K@0x12000(DTB),4096K@0x22000(kernel),…

  • 在xxxxconfig.h中定义

    deifne config_env 0x10000

    deifne config_envz_size 4*1024 来指定环境env的大小

  • 查看是否使用配置的环境变量配置
    进入uboot命令行,执行pri命令,,查看是否和我们设置的一样

制作img镜像文件

通过对应的cfg文件,可以生成img镜像文件,再烧录
执行命令

tr '\000' '\377' < /dev/zero | dd of=filename.img bs=1024 count=1

执行./fw_setenv -s xxx.cfg 生成xxx.img
执行./fw_printenv 查看 img 内容是否一致

参考文档:

https://blog.csdn.net/qq_35762024/article/details/126306211

https://www.cnblogs.com/gcczhongduan/p/5201997.html