笔记 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)

谢谢

相关推荐
T1mzhou11 小时前
ARM64 Linux 6.10 内核驱动(12):dd.c:probe/ remove、延迟 probe
linux·服务器·c语言·arm开发·arm
T1mzhou15 小时前
ARM64 平台安全学习记录
linux·服务器·arm开发·arm
zhangzhangkeji18 小时前
stm32 3-4 : 按键控制 LED,光敏传感器控制蜂鸣器
stm32·arm
zhangzhangkeji2 天前
stm32 ,3-2:led 闪烁、流水灯、蜂鸣器
stm32·arm
zhangzhangkeji2 天前
stm32 笔记 - 3-1:GPIO 输出
stm32·arm
零依赖极客2 天前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
奔跑的架构师2 天前
[A-50]ARMv9/v8-DVFS系统架构
linux·arm开发·架构·系统架构·arm
zhangzhangkeji3 天前
stm32 笔记 - 2:库函数方式的初始化,项目的文件结构
stm32·arm
zhangzhangkeji3 天前
stm32 笔记 - 1:, 环境与项目搭建, 寄存器方式点灯
arm
T1mzhou4 天前
ARM64 Linux 6.10 内核驱动(13):bus.c / driver.c 总线两张表,驱动怎么挂上去
linux·服务器·c语言·arm开发·arm