
lwip
yangzhao0001
这个作者很懒,什么都没留下…
展开
-
CDS 网络通信,异常重启---调试
1原创 2015-11-02 15:18:38 · 1768 阅读 · 1 评论 -
lwip【3】LWIP ethernetif.c分析
1、ethernetif_init()初始化底层接口err_tethernetif_init(struct netif *netif){ struct ethernetif *ethernetif; ethernetif 是一个结构体,用来描述底层硬件设备,该结构体唯一不可或缺的是MAC地址,它是LWIP用于相应ARP查询的核心数据。其他如果没有特殊需要,可以不添加转载 2015-10-13 20:22:27 · 1330 阅读 · 0 评论 -
lwip【1】LwIP移植心得
LwIP终于能跑了,总结下:平台是LPC2136+ENC28J60,32K的RAM,软件是uCOS-II 2.51+LwIP 1.1.1。感觉主要解决两个问题:操作系统仿真层的移植。这个基于uCOS-II的代码太多了。COPY下就行!1,设备驱动的移植.驱动的移植主要就是完成ethernetif.c的工作。作者已经给好了驱动的接口。struct netif { str转载 2015-10-13 20:20:10 · 1581 阅读 · 0 评论 -
lwip【2】 lwip--有趣的数组定义(预处理)
在全局定义的宏和在一个函数内部定义的宏有什么不同?是不是和变量的定义含义差不多,作用域不同?还是有其他的什么差别? 宏定义的作用域是同文件内从定义开始起作用 直到取消定义 static u8_t memp_memory[MEM_ALIGNMENT - 1 #define LWIP_MEMPOOL(name,num,size,desc) + ( (num) * (转载 2015-10-13 20:21:31 · 615 阅读 · 0 评论 -
lwip【4】 lwIP配置文件opt.h和lwipopts.h初步分析之一
在这里先说一下这两个配置lwip协议栈文件opt.h和lwipopts.h的关系: opt.h是lwip“出厂”时原装的配置文件,它的作者是瑞士科学院的Adam等人,而lwipopts.h的作者是stellarisWare的工程师,它集合了opt.h中常常需要改动的部分和针对Stellaris所特有的配置选项添加进来了。这两个文件里边都配置的选项,以后者为准,不是共有的选项以它转载 2015-10-13 20:24:02 · 1444 阅读 · 0 评论 -
lwip【5】 lwIP配置文件opt.h和lwipopts.h初步分析之二
如何去配置lwip,使它去适合不同大小的脚,这就是本贴的主题lwIP的配置问题。尤其是内存的配置,配置多了浪费,配置少了跑不了或者不稳定(会出现的一大堆莫名奇妙的问题,什么打开网页的速度很慢啊?什么丢包啊,什么死机啦,什么跑到无限循环里边去了,总之很多)。 在这里先说一下这两个配置lwip协议栈文件opt.h和lwipopts.h的关系:转载 2015-10-13 20:24:40 · 895 阅读 · 0 评论 -
LwIP源代码文件目录解析
1 -- LwIP源代码文件目录root@motadou:/home/motadou/lwip/lwip-1.4.1# tree .├── CHANGELOG├── COPYING├── doc│ ├── contrib.txt│ ├── FILES│ ├── rawapi.txt│ ├── savannah.txt│ ├── snmp_agent.txt转载 2015-11-25 15:04:59 · 663 阅读 · 0 评论 -
TCP协议: SYN ACK FIN RST PSH URG 详解
TCP: SYN ACK FIN RST PSH URG 详解=============================================================TCP的三次握手是怎么进行的了:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手;接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给转载 2016-07-27 10:34:46 · 775 阅读 · 0 评论 -
LWIP内存池memp.h头文件学习
声明:个人所写所有博客均为自己在学习中的记录与感想,或为在学习中总结他人学习成果,但因本人才疏学浅,如果大家在阅读过程中发现错误,欢迎大家指正。使用LWIP源码版本为1.4.1关于动态内存池分配动态内存池分配策略实现起来非常简单。内存的分配、释放效率高,不像内存堆那样产生大量的内存碎片,有效防止碎片的产生,这种方式下,用户只能申请到大小固定的空间。在LWIP中,这种方式主要转载 2016-07-16 11:14:19 · 1160 阅读 · 0 评论 -
lwip【0】lwIP移植工作
目录(?)[-]lwIP移植工作一cch 与CPU和编译器的相关接口lwIP移植工作二sys_archh sys_archc 与操作系统的接口lwIP移植工作三ethernetc网卡驱动程序lwIP移植工作(一)cc.h 与CPU和编译器的相关接口Lwip的移植主要是三个接口部分:1、与CPU或编译器相关接口(include中cc.h文件)2、与转载 2015-10-13 20:18:25 · 3619 阅读 · 0 评论 -
lwip【6】LWIP使用经验
目录(?)[-]LWIP使用经验一 LWIP内存管理数据包管理设置内存大小宏编译开关二 LWIP启动时序三 LWIP运行逻辑接收数据包SequentialAPI函数调用四 TCPIP核心知识点滑动窗口三次握手断开连接TCP状态转换同时打开同时关闭五正确使用LWIP六 LWIP常见问题网卡驱动程序内存泄露PC机无法与LWIP建立TCP连接转载 2015-10-14 09:03:35 · 1622 阅读 · 0 评论 -
csky elf文件反汇编命令
1、进入Debug(当然也可以不用进)Debug>2、输入命令进行反汇编Debug>csky-uclinux-objdump -S Sec-chip.elf > 1.asm若没有> 1.asm,则会直接在控制台中打印:3、使用记事本打开asm文件,asm文件就是反汇编后的文件。原创 2015-11-04 11:06:08 · 2261 阅读 · 0 评论 -
CDS 未对齐访问异常
1、代码如下2、汇编如下3、分析r0:栈地址r15:返回时的跳转地址r2:第一个传入参数的地址8000cf6e: 8005 ld r0, (r5, 0) 设置栈地址8000cf70: 24f0 subi r0, r0, 16 栈空间8000cf72: 9f20 st原创 2015-11-02 19:55:53 · 729 阅读 · 0 评论 -
Nucleus SDIO 的 Bus Width 的修改过程
1、修改SDIO DEVICE的Bus Width(1)part1_410.pdf SD Specifications Part 1Physical LayerSimplified SpecificationVersion 4.10January 22, 2013不是SDIO DEVICE文档;(2)partA2_300.pdfSD Sp原创 2015-11-04 10:00:07 · 1464 阅读 · 0 评论 -
CDS 将工程中的模块打包成库(即**.o文件)的过程
1、 先提取出项目中需要打包成库的**.o文件2、 再使用C-Sky Console,进入对应项目的debug中3、 输入 csky-elf-ar cru xx.a(打包后的库文件) 对应需要打包的**.0文件 //4、右击在对应的CDS中的不用的文件,选择Exclude from build ,选择Select All ,然后OK原创 2015-11-05 19:47:49 · 881 阅读 · 0 评论 -
详解DHCP工作方法,并用wireshark对DHCP四个数据包抓包分析
DHCP的作用:在局域网中,用户电脑都需要IP地址才使用网络服务,但是客户并不都会配置IP地址,这时,可以在网络中部署一个DHCP服务器,用来给这些客户主机动态的分配IP。所有DHCP的客户端,在向DHCP服务器租用到地址后,会在DHCP服务器端留下租用信息,网络管理员可以根据这些分配信息统一管理这些客户。DHCP的一些概念:DHCP是一个典型的Client/Server模型的协议转载 2015-11-06 14:04:44 · 3603 阅读 · 0 评论 -
常用协议类型值
Ethertype ( 十六进制 ) 协议 0x0000 - 0x05DC IEEE 802.3 长度 0x0101 – 0x01FF 实验 0x0600 XEROX NS IDP 0x0660 0x0661 DLOG 0x0800 网际协议(IP) 0x0801 X.75 Internet 0x0802 NBS Internet 0x0803 ECMA转载 2015-11-09 10:12:40 · 5013 阅读 · 0 评论 -
lwip查看版本和下载源代码
1、查看版本打开 lwip/CHANGELOG,可以看见(STABLE-1.X.X),例如(STABLE-1.3.2)。(STABLE-1.3.2),这就是版本号。2、下载源代码打开 lwip/doc,阅读目录下文档,可知:savannah.txt - 如何获取当前的开发源代码。然后,打开网址:http://savannah.nongnu.org/p原创 2015-11-10 10:58:26 · 6353 阅读 · 0 评论 -
typedef
在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。中文名声明类型外文名typedef性 质声明定义存 储存储类的关键字差 别与宏定义有些差异目转载 2015-11-12 00:40:54 · 497 阅读 · 0 评论 -
TCP/IP数据包格式详解-包括数据链路层的头部
最近在进行一些路由软件的编程,发现自己对数据报格式并不是十分清楚,所以就查阅了相关资料,总结如下,供大家参考,也可以称为自己日后的工具。图中括号中的数字代表的是当前域所占的空间大小,单位是bit位。黄色的是数据链路层的头部,一共14字节绿色的部分是IP头部,一般是20字节紫色部分是TCP头部,一般是20字节最内部的是数据包内容黄色部分:链路层目的转载 2016-11-19 17:40:59 · 1926 阅读 · 0 评论