代码学习自然是从bootload开始,我们来研究一下AI Camera的uboot吧。
我们在系统启动时,及时输入一个回车,可以看到AI Camera启动uboot,提示符为“hisilicon#”。
看看编译时间20200908 23:26:57可以推测出华为的007工作制:)
我们知道系统通用的启动过程都是系统上电,执行uboot,初始化DDR,将OS从Flash读取到DDR中,启动OS。
Uboot本身也有命令行支持,我们看看它支持哪些命令吧。
先看看版本吧。
似乎不是https://ftp.denx.de/pub/u-boot/上的标准版本。
不过没关系,首先还是把网络调起来看看。直接ping一下eth0连接的地址:
发现IP和MAC都不正确,查看环境变量
果然是没有设置,setenv试试
如果采用C类地址,可以不用设置netmask。
再看看
试试看是否生效,尝试ping网关192.168.137.1
Ping一个不存在的地址试试
说明地址设置是正确的。再到外部查看,arp学习正确。
因为uboot裸机程序,uboot可以ping通外部,外部不可ping通uboot,所以我们就不用再尝试从192.168.137.1来ping我们新设置的192.168.137.100了。
保存设置
嗯,接下来,我们就可以考虑通过外部tftp server或者nfs来启动系统。