zynqmp uboot 2020.1环境变量初始化流程
先要设置环境变量的存储位置,否则uboot没有saveenv命令
运行 petalinux-config -c u-boot,如果是单独编译uboot则用make ARCH=arm64 CROSS_COMPILE=aarch64-xilinx-linux- menuconfig,出现如下配置界面
进入Environment选项,去掉Enviroment is not stored,选择Enviroment is in a FAT filesystem选择将环境变量保存到FAT文件系统中,如果不去掉Enviroment is not stored,则uboot中没有saveenv命令。
执行saveenv后会在第一个分区中保存一个uboot.env文件,这个就是环境变量文件。
环境变量初始化过程
-->initr_env //uboot/common/board_r.c
-->env_relocate //uboot/env/common.c
-->env_load //uboot/env/env.c,这里会去查找加载环境变量的驱动,如果将环境变量保存到fat文件系统中的,那边这个驱动是在uboot/env/fat.c中。
-->env_fat_load //uboot/env/fat.c,调用fat文件系统接口,从fat文件系统中读取uboot.env环境变量文件
-->env_import //uboot/env/common.c,先对读取的环境变量进行校验,如果校验失败,则说明环境变量不存在,就会执行env_set_default函数来设置默认环境变量,最后将调用himport_r函数用哈希链表来表示环境变量
标签:uboot,--,文件系统,fat,env,环境变量 From: https://www.cnblogs.com/YYFaGe/p/16806261.html