交叉编译fw_printenv

source /opt/poky/environment... 

创建交叉编译环境。

更改u-boot/tools/env/Make 

添加CC

9 CC=aarch64-poky-linux-gcc -march=armv8-a -mtune=cortex-a57.cortex-a53 --sysroot=/opt/poky/2.4.2/sysroots/aarch64-poky-linux
10 override HOSTCC = $(CC)
$(warning $(HOSTCC))

编译:

make ARCH=arm CROSS_COMPILE=aarch64-poky-linux- envtools

转载于:https://www.cnblogs.com/hutiann/p/11447593.html

### 解决 `fw_printenv` 命令出现 BAD 错误 当遇到 `fw_printenv` 出现 BAD 错误的情况时,通常意味着环境变量存储区域存在读取或校验问题。具体表现为坏的循环冗余校验 (CRC),这会阻止正确加载环境变量。 #### 可能原因分析 - **坏的 CRC 校验**:如果环境中保存的数据损坏,则会出现 "bad CRC, using default environment" 的警告[^2]。 #### 解决策略 为了修复此问题,可以尝试以下方法: 1. **重置 U-Boot 环境变量** 使用 `fw_setenv` 工具来清除并重新设置必要的环境变量。通过删除现有配置文件 `/etc/fw_env.config` 或者直接修改该文件中的路径指向新的未受损分区。 2. **手动修正环境数据** 如果知道确切哪些变量被破坏,可以直接编辑对应的二进制文件(通常是 MTD 设备上的特定偏移位置),但这需要非常谨慎的操作以及对设备内部结构的理解。 3. **更新固件版本** 某些情况下,旧版U-Boot可能存在缺陷,在这种情形下升级到最新稳定版本可能解决问题。 4. **硬件层面排查** 对于某些嵌入式平台来说,Flash芯片本身可能出现物理损伤或者连接不良等问题,特别是对于AMD Flash而言,DQ5引脚用于检测操作状态异常,而其他品牌如SST则不具备相同机制,因此可能导致擦除失败进而影响参数写入准确性。 ```bash # 清理当前环境变量至默认值 sudo fw_setenv -s /path/to/default.env ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值