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