环境变量ENV_IS_NOWHERE配置选项

# To setup the uboot system environment store setting

config ENV_SIZE

 hex

 default 0x20000 if ENV_IS_IN_NAND

 default 0x10000 if ENV_IS_IN_SPI_FLASH

 default 0x40000 if ENV_IS_IN_MMC

 default 0x2000 if ENV_IS_NOWHERE

 

"ENV_IS_NOWHERE"是一个在嵌入式系统编程中常见的宏定义。它的含义是U-Boot环境变量没有存储在任何地方。在一些嵌入式系统中,U-Boot环境变量通常被存储在内存或者闪存等地方,以便于启动和运行程序时能够快速获取这些环境变量的信息。然而,当定义了"ENV_IS_NOWHERE"这个宏后,就意味着这些环境变量没有被存储在任何地方,这可能会导致一些问题,比如无法正确启动程序等。

在实际应用中,如果遇到因为"ENV_IS_NOWHERE"导致的错误,可能需要检查相关的配置文件,确保U-Boot环境变量被正确地存储在了合适的地方。在一些情况下,可能需要修改相关的代码或配置,以确保程序能够在没有环境变量的情况下正常运行。

 

分区在flash中的便宜和大小要设置正确

CONFIG_ENV_SIZE=0x10000
CONFIG_ENV_OFFSET=0x00D0000
CONFIG_ENV_SECT_SIZE=0x10000
CONFIG_SYS_MALLOC_LEN=0x300000
CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE=""

 

保存成功:

Saving Environment to SPIFlash... NOR version: 1.0.12

xxx_spinor_reset: spi flash pinmux 0x1

get reg: 0x130131f0

dbg clkdiv: 0x130131f0

config nor pad driving: todo

nor chip_sel = <0>

id = 0xc2 0x20 0x19 0xc2 0x00

STDR256FW with page size 256 Bytes, erase size 4 KiB, total 32 MiB

xxx spinor 12000000 Hz

IO mode: 1-bit write / 2-bit read

DTR mode: 0, Dummy clk: 0, DQS mode: 0

Erasing SPI flash...Writing to SPI flash...done

OK

 

打印

uboot # pri

do_env_print

env_print

arch=arm

baudrate=115200

board=xxx-nsxxxxx

board_name=xxx-nsxxxxx

bootargs=rootwait nprofile_irq_duration=on boot_mode=0

bootdelay=3

cpu=armv7

dbg=0

ethaddr=0a:0b:0c:0d:0e:01

fdtcontroladdr=7c5d8f0

gatewayip=10.12.98.254

hostname=soclnx

ipaddr=10.12.98.223

netmask=255.255.255.0

serverip=10.12.98.119

stderr=serial

stdin=serial

stdout=serial

vendor=xxxxx

ver=U-Boot 2021.10-svn4314 (May 03 2024 - 13:09:15 +0800)

verify=0

 

Environment size: 448/65532 bytes

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值