如何解决在UBOOT中通过串口输入长度较大的环境变量的问题

     在uboot中,需要很多的环境变量,比如内核的启动参数、网络IP地址、启动设备块选择、延时设置等,当有些变量较长,串口输入时,超过一定长度时就会以“O”出现,“O”是黑色的实心圈,当你save以后再printenv后,你会发现你想保存的环境变量只有一部分、不全,没有达到效果,那怎么解决长度达的环境变量呢?笔者通过实践提供如下两种解决办法:

    <一> 改变串口接收BUFFER的大小。如果你有uboot的源代码,编译比较方便的话,这种方法是彻底方便的。在common/main.c文件中,有一个宏叫MAX_CMDBUF_SIZE,也就是串口接收buffer的大小,在uboot工程中,默认的大小为256,将此宏的值改大即可,比如调整成1024,这样就能扩大通过串口输入环境变量的长度。

    <二>使用中间变量。如果没有uboot工程源码,又必须保存一个超长的环境变量的话,那就可以通过中间变量来完成。比如有一个环境变量的为BOOTARGS=ABCDEFGHIJKLMNOPQRSTUVWXYZ,但是一次又无法保存这么长的变量,我们就可以把BOOTARGS分成两截、或者多截来完成。先设置中间变量TMP=OPQRSTUVWXYZ,再在串口中输入setenv BOOTARGS BCDEFGHIJKLMN$TMP,这样保存以后,BOOTARGS的环境变量就会拼结起来形成完整的变量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值