(295)uboot 中网络协议栈。
网卡的驱动,对于上层协议来说,已经封装好了发送和接收数据的接口,那么上层协议栈只需要按照顺序调用对应的网卡驱动函数就可以进行网络数据的收发。uboot 中的协议栈相对来说比较简单,有以下几个特点:
+传输层只支持 UDP 协议;
+目前只支持 ICMP、TFTP、NFS、DNS、DHCP、CDP、SNTP 等几种协议;
+网卡采用 poll 接收数据包,而不是中断方式;
+数据包的发送和接收操作是串行操作,不支持并发。

(296) 谢谢彭老师的图, 地址在这里:

++ 老师接着以 dns 报文来讲解 :

++

(297)这里记录了 uboot 里重要的命令封装宏 U_BOOT_CMD

(298)开始以 dns 命令举例 :

++ 接着是公共的网络函数 NetLoop (...) :

++

++

++

++

(299)另起一个分支, 图 1 里放 for 循环 :

(300) 收包部分 :

++ 至此, 命令的 dns 实现函数 do_dns (...) 就可以返回了,见上面的图。
++ ping 的代码执行流程分析,老师说,咱们可以自己对比着来进行。
++ 搞清 9000A 的裸机驱动,是分析 linux 内核里 9000A 的驱动的基础。
(301)
谢谢