获取IP地址 获取子网掩码 获取网关 Read More
posted @ 2018-12-04 14:49 liqinghan Views(234) Comments(0) Diggs(0)
很早前之前看的linux内核,一直想把container_of记录一下,趁今天想起就记录一下: 内核中的描述 作用:返回member成员对应的所在的父结构体指针。下面的例子就通过child变量的一个成员地址获取到child变量的地址,以便访问child变量的其他成员 Read More
posted @ 2018-12-04 14:44 liqinghan Views(785) Comments(0) Diggs(0)
1、使用整数来计算除法的精度 避免有些不能使用浮点型的场合 ​ /* *didiv : 被除数 *div : 除数 *accuracy:精确度,精确到小数点后面的位数 *return:返回的是扩大10^accuracy后的商值。 */ uint32_t accuracy_cal(uint32_t d Read More
posted @ 2018-12-04 10:22 liqinghan Views(145) Comments(0) Diggs(0)
7、网络接口 在lwIP中,物理网络硬件设备驱动是由类似于BSD网络接口结构表示。网络接口结构如图5所示。网络接口被保存在一个全局的链表中,通过结构体中的next指针来完成链表的链接。 每个网络接口都有一个名字,存储在name字段中,如图5所示。以双词名称来标识网络接口设备驱动的类型,且仅在接口被人 Read More
posted @ 2018-12-04 10:17 liqinghan Views(489) Comments(0) Diggs(0)
6、缓冲及内存管理 在一个通信系统中,内存缓冲管理系统必须容纳各种大小的缓冲数据,其范围从包含具有数百个字节的数据的全尺寸TCP段到只有几个字节的短ICMP回复包。此外,为了避免拷贝,应该让数据内容缓冲驻留不被网络子系统管理的内存中。例如应用程序内存或或者ROM。 6.1、包缓冲——pbufs 包缓 Read More
posted @ 2018-12-04 10:14 liqinghan Views(656) Comments(0) Diggs(0)
uboot和内核都必须修改。 Read More
posted @ 2018-11-26 09:37 liqinghan Views(898) Comments(0) Diggs(0)
为了使lwIP可移植,操作系统特定的函数调用和数据结构不直接在协议的代码中使用。相反,当需要这样的函数调用和数据结构时,直接使用操作系统仿真层。 操作系统仿真层为操作系统服务提供统一的接口,如定时器,进程同步和消息传递机制。 原则上,当移植lwIP到其他操作系统时,只需要实现该操作系统的操作系统仿真 Read More
posted @ 2018-11-26 09:34 liqinghan Views(233) Comments(0) Diggs(0)
4、流程模型 协议实现的流程模型描述了系统被划分为不同的流程的方式。用于实现通信协议的一个流程模型是让每个协议作为一个独立的进程运行。有了这个模型,严格的协议分层被强制执行,并且协议之间的通信点必须严格定义。虽然这种方法有它的优点,比如可以在运行时添加协议,理解代码和调试通常也比较容易,但也有一些缺 Read More
posted @ 2018-11-26 09:34 liqinghan Views(202) Comments(0) Diggs(0)
3、概述 像许多其他TCP/IP实现一样,分层协议设计已经成为设计lwIP实现的指南。每个协议实现为自己的模块,其中几个功能充当每个协议的入口点。尽管协议层是单独实现的,一些层却不全是,正如前面所叙述的。这是为了提高处理速和内存使用率方面的性能而做的妥协。例如,当验证到来的TCP数据段的校验码和解复 Read More
posted @ 2018-11-26 09:34 liqinghan Views(201) Comments(0) Diggs(0)
摘要 LwIP是一种TCP/IP协议栈的实现。LwIP协议栈专注于减少内存的使用和代码的大小,使LwIP适用于嵌入式系统中在有限的资源下能够使用小型的客户机。为了减少处理和内存的需求,LwIP使用裁剪过的API,并不需要任何数据都拷贝。这个报告描述LwIP的设计与实现。算法和数据结构都用于协议的实现 Read More
posted @ 2018-11-26 09:33 liqinghan Views(304) Comments(0) Diggs(0)