UBOOT中的bootcmd命令中的参数是如何初始化给系统的?

时间:2022-10-24 19:49:54
uboot在自启动中是如何引用bootcmd中的各参数的?在main_loop()里的s=getenv(“bootcmd”),我知道是在这把这些参数取出来的,然后他在哪里开始初始化这些参数的?
我现在想在倒计时时先中断auto-boot,调用tftp下载一个FPGA的文件,配置好FPGA后再下载内核。但是此时调用tftpstart()函数时获取不到IP地址,为0.0.0.0。对这个流程还是有点不清楚,有没有人能帮忙讲解一下?比如系统从bootcmd先获取到了启动变量,然后它是通过哪几个函数将这些命令配置进去的?

2 个解决方案

#1


在uboot中有一个parse解释器,在这个函数中会将bootcmd中的命令解释并执行,在main.c中的main_loop函数中parse_string_outer或者run_command这两个函数中的一个执行。解释并执行完bootcmd后开始倒计时

#2


引用 1 楼 steven_miao 的回复:
在uboot中有一个parse解释器,在这个函数中会将bootcmd中的命令解释并执行,在main.c中的main_loop函数中parse_string_outer或者run_command这两个函数中的一个执行。解释并执行完bootcmd后开始倒计时


中断后直接调用tftpstart()函数,此时获取不到TFTP SERVER和板的IP地址,都为0.0.0.0。但为什么我直接输入tftp时它又能获得IP呢?

#1


在uboot中有一个parse解释器,在这个函数中会将bootcmd中的命令解释并执行,在main.c中的main_loop函数中parse_string_outer或者run_command这两个函数中的一个执行。解释并执行完bootcmd后开始倒计时

#2


引用 1 楼 steven_miao 的回复:
在uboot中有一个parse解释器,在这个函数中会将bootcmd中的命令解释并执行,在main.c中的main_loop函数中parse_string_outer或者run_command这两个函数中的一个执行。解释并执行完bootcmd后开始倒计时


中断后直接调用tftpstart()函数,此时获取不到TFTP SERVER和板的IP地址,都为0.0.0.0。但为什么我直接输入tftp时它又能获得IP呢?