环境变量在sd卡中的位置

sd的扇区分布

首先需要了解整个sd开的扇区分布情况,如下图

在这里插入图片描述

uboot在sd卡中的位置

在使用sd_fusing烧写uboot是时,使用dd命令将uboot的bl1和bl2分别烧写到了1-16,49-x,其中x取决于uboot的大小,sd卡的扇区大小为512Byte
在这里插入图片描述

环境变量在sd卡中的位置

在重定位代码时,uboot从sd卡的MOVI_BL2_PS这个地址开始拷贝出bl2的代码,如下图
在这里插入图片描述
MOVI_BL2_PS这个地址的前面的扇区分配如下:
0扇区,大小为(eFUSE_SIZE/MOVI_BLKSIZE):空闲
1-16扇区,大小为MOVI_BL1BLKCNT:存放bl1的代码
17-48扇区,大小为MOVI_ENV_BLKCNT:存放env
在这里插入图片描述
所以可以得到uboot希望我们把环境变量发到17-48扇区

在配置头文件中添加环境变量在sd卡中存放的地址

save命令的功能有saveenv函数实现,在saveenv函数通过mmc_get_env_addr()函数得到环境变量存放的首地址,并通过write_env()函数将环境变量保存到sd卡中
在这里插入图片描述
而mmc_get_env_addr()函数这个函数时通过CONFIG_ENV_OFFSET这个宏来返回环境变量在sd卡中的首地址的,所以只需要在配置头文件中定义CONFIG_ENV_OFFSET这个宏,并将其设为 17*512 即可(512为sd扇区大小)
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值