昨天把u-boot弄到了板子的nor flash中,测试各项功能基本正常,于是想弄到nand中试试,移植过程基本顺利。
移植完开机测试,令人兴奋的打印U-Boot...出现,迫不及待的敲入ping测试,问题来了,出现错误提示:
*** ERROR: `ethaddr' not set,from here
ping failed; host 192.168.3.49 is not alive
奇怪,在nor中运行正常的u-boot,搬到nand中的时候关于网络部分的代码没做任何改动,怎么就会出现这种错误呢?查看u-boot的原代码,找了很久也看不出问题,在代码中加入打印调试信息以跟踪问题,发现加入打印MAC地址的信息没有打印出来。原因是没有定义CONFIG_ETHADDR,可代码中明明定义了,而且在nor中的时候也很正常,于是做出以下两个操作:
1. 修改CONFIG_ETHADDR定义的值
2. 来个make mrproper,重新编译出u-boot.bin,
3. 再次下载之前把nand全部擦除
下载到nand中测试,问题搞定。原因可能是编译器的问题,也可能是原来nand中保存环境变量的地方有其他内容。
阅读(3248) | 评论(0) | 转发(0) |