当前位置: 技术问答>linux和unix
有关boot setenv问题
来源: 互联网 发布时间:2016-12-17
本文导语: 现在另外一个boot上跑一套代码,但是boot启动参数使用的是原配套boot的启动参数,现在有个问题就是 有个参数设不了(像bootargs,bootcmd都已经ok了,也可以跑到文件系统中去,但由于一个参数没设定,程序不能正常运...
现在另外一个boot上跑一套代码,但是boot启动参数使用的是原配套boot的启动参数,现在有个问题就是
有个参数设不了(像bootargs,bootcmd都已经ok了,也可以跑到文件系统中去,但由于一个参数没设定,程序不能正常运行),
macwrite=eeprom read 0x100000 4 1;if itest.b *0x100000 != 0xa;then tftp 0x100000 hunan;writenum 0x100000 114 12;mw.b 0x100000 0xa;eeprom write 0x100000 4 1;fi;
想问一下boot的启动参数大小有限制吗?
比如上面那个参数
我这样设定
#set macwrite eeprom read 0x100000 4 1;if itest.b *0x100000 != 0xa;then tftp 0x100000 hunan;writenum 0x100000 114 12;mw.b 0x100000 0xa;eeprom write 0x100000 4 1;fi;
TFTP from server 192.168.18.69; our IP address is 192.168.18.249
Filename 'hunan'.
Load address: 0x100000
Loading: *
好像马上就去执行tftp 0x100000 hunan,但这样设定
# set macwrite eeprom read 0x100000 4 1;if itest.b *0x100000 != 0xa;then tftp 0x100000 hunan;writenum 0x100000 114 12;mw.b 0x100000 0xa;eeprom write 0x100000 4 1;fi;
Usage:
setenv - set environment variables
虽然没有去执行,但pri也没有看到设定的macwrite
是不是不同的boot设定参数格式也有不同,这个是在boot源代码中有限制的吗?
(因为没有配套的boot源代码,所以用了另外一个,但是同一产品线的)
哪位帮忙解答一下,谢谢
有个参数设不了(像bootargs,bootcmd都已经ok了,也可以跑到文件系统中去,但由于一个参数没设定,程序不能正常运行),
macwrite=eeprom read 0x100000 4 1;if itest.b *0x100000 != 0xa;then tftp 0x100000 hunan;writenum 0x100000 114 12;mw.b 0x100000 0xa;eeprom write 0x100000 4 1;fi;
想问一下boot的启动参数大小有限制吗?
比如上面那个参数
我这样设定
#set macwrite eeprom read 0x100000 4 1;if itest.b *0x100000 != 0xa;then tftp 0x100000 hunan;writenum 0x100000 114 12;mw.b 0x100000 0xa;eeprom write 0x100000 4 1;fi;
TFTP from server 192.168.18.69; our IP address is 192.168.18.249
Filename 'hunan'.
Load address: 0x100000
Loading: *
好像马上就去执行tftp 0x100000 hunan,但这样设定
# set macwrite eeprom read 0x100000 4 1;if itest.b *0x100000 != 0xa;then tftp 0x100000 hunan;writenum 0x100000 114 12;mw.b 0x100000 0xa;eeprom write 0x100000 4 1;fi;
Usage:
setenv - set environment variables
虽然没有去执行,但pri也没有看到设定的macwrite
是不是不同的boot设定参数格式也有不同,这个是在boot源代码中有限制的吗?
(因为没有配套的boot源代码,所以用了另外一个,但是同一产品线的)
哪位帮忙解答一下,谢谢
|
你用的是UBOOT吗? 如果是,uboot的命令参数个数是有上限的 在include/configs/XXX.h(与开发板对应的头文件如smdk2440.h中 宏
#define CFG_MAXARGS 16 )最多参数个数16
实际参数个数还要看你uboot中的定义
至于“好像马上就去执行tftp 0x100000 hunan” 你可以尝试在include/configs/XXX.h(与开发板对应的头文件)定义#define CFG_HUSH_PARSER 这个宏 开启相应代码的编译 具体可阅读uboot common/main.c 与 CFG_HUSH_PARSER 相关的代码 大约在480行左右,应该是run_command (lastcommand, flag); 函数导致了这个问题 ,定义CFG_HUSH_PARSER 就避开了run_command (lastcommand, flag); 函数 。不会再出现 马上就去执行tftp 0x100000 hunan的问题了
CFG_MAXARGS
CFG_HUSH_PARSER 这两个宏还可能被定义成
CONFIG_SYS_MAXARGS
CONFIG_SYS_HUSH_PARSER 这要看uboot的版本
问个问题需要每五分钟就来看看吗?使用《Csdn收音机》帮你监视帖子更新吧!
#define CFG_MAXARGS 16 )最多参数个数16
实际参数个数还要看你uboot中的定义
至于“好像马上就去执行tftp 0x100000 hunan” 你可以尝试在include/configs/XXX.h(与开发板对应的头文件)定义#define CFG_HUSH_PARSER 这个宏 开启相应代码的编译 具体可阅读uboot common/main.c 与 CFG_HUSH_PARSER 相关的代码 大约在480行左右,应该是run_command (lastcommand, flag); 函数导致了这个问题 ,定义CFG_HUSH_PARSER 就避开了run_command (lastcommand, flag); 函数 。不会再出现 马上就去执行tftp 0x100000 hunan的问题了
CFG_MAXARGS
CFG_HUSH_PARSER 这两个宏还可能被定义成
CONFIG_SYS_MAXARGS
CONFIG_SYS_HUSH_PARSER 这要看uboot的版本
问个问题需要每五分钟就来看看吗?使用《Csdn收音机》帮你监视帖子更新吧!