笔记 34 - 7 :网卡 DM9000AE; uboot 网络协议栈,里的函数调用流程

(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)

谢谢

相关推荐
2035去旅行16 小时前
U-Boot DM(Driver Model)驱动框架
嵌入式·arm·soc
凉、介18 小时前
深入理解 ARMv7-M | 异常/中断处理
笔记·学习·嵌入式·arm
凉、介18 小时前
深入理解 ARMv7-M|处理器模式与寄存器
笔记·学习·嵌入式·arm
2035去旅行2 天前
U-Boot简介
嵌入式·arm·soc
zbyyd5 天前
Linux驱动:UART串口通信、GT9147触摸屏与IIO-ADC驱动开发
linux·驱动开发·arm
zbyyd6 天前
Linux驱动:SPI子系统与ADXL345三轴加速度传感器驱动开发
linux·驱动开发·arm
2035去旅行6 天前
SOC 里的 CPU 处理器 和 L1/L2 Cache
嵌入式·arm·soc
一直C6 天前
嵌入式 Linux 驱动开发学习笔记:设备树、pinctrl 与 GPIO 驱动开发
驱动开发·嵌入式·arm·dt
2035去旅行7 天前
两核 CPU:CPU1 和 CPU2 是如何协同工作的?
嵌入式·arm·soc
奔跑的架构师8 天前
[A-51]ARMv9/v8-SCMI系统架构
linux·arm开发·架构·系统架构·arm