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

谢谢

相关推荐
zhangzhangkeji3 天前
笔记 30 - 4 :rootfs 配置文件定制,etc / profile,与挂载测试
arm
zhangzhangkeji3 天前
笔记 34 - 3 :网卡 DM9000AE;16 位下的引脚功能,引脚映射到 SROMC,到 GPIO
arm
深念Y6 天前
订阅管理及节点过滤实践(技术笔记)
linux·网络·arm·优化·日志·工具·soc
zhangzhangkeji8 天前
笔记 28 : linux 里 Kconfig 语法详解
arm
zhangzhangkeji8 天前
笔记 25 - 1 :linux 驱动模块移植,obj-y、obj-m,命令 dmesg,开启已有的硬件驱动
arm
zhangzhangkeji8 天前
笔记 25 - 2 :linux 驱动模块移植,创建自定义驱动(编译为模块),调整 shell 里字体大小,
arm
zhangzhangkeji9 天前
笔记 24 -2 :linux 内核编译,实验举例,及编译脚本
arm
zhangzhangkeji9 天前
笔记 23 :linux 内核基础知识,内核的目录
arm
抓不住时间的沙10 天前
N1搭建Hexo个人博客,部署到Github
python·docker·node.js·debian·github·arm