lwip学习笔记
更新时间:2023-10-15 15:20:01 阅读量: 综合文库 文档下载
- lwip是什么设备推荐度:
- 相关推荐
2) sys_thread_new sys_arch_timeouts 相关的三个全局变量如下
struct sys_timeouts lwip_timeouts[LWIP_TASK_MAX];
//为每一个由sys_thread_new创建的任务分配一个存放信号量超时信息的列表 struct sys_timeouts null_timeouts;
//为一个超过任务上限数的任务和不是由sys_thread_new创建的任务取超时列表时返回使用。 MMAC_RTOS_TASK_ID LWIP_TASKS[LWIP_TASK_MAX]; //任务id存放顺序与lwip_timeouts相对应
sys_thread_new用来创建一个新的任务,保存任务ID。sys_arch_timeouts
//就是通过取得任务ID返回任务对应的timeouts结构,从而可以添加、删除和判断超时的功能 /**
* Create a one-shot timer (aka timeout). Timeouts are processed in the * following cases:
* - while waiting for a message using sys_mbox_fetch()
* - while waiting for a semaphore using sys_sem_wait() or sys_sem_wait_timeout() * - while sleeping using the inbuilt sys_msleep() *
* @param msecs time in milliseconds after that the timer should expire * @param h callback function to call when msecs have elapsed * @param arg argument to pass to the callback function */ void
sys_timeout(u32_t msecs, sys_timeout_handler h, void *arg)
sys_timeouts 只是一个指向下一个的sys_timeo的指针
1、InternSocketInit(); //TCP连接初始化
1.1、 lwIPInit(sDevPara.chMACAddr, 0, 0, 0, IPADDR_USE_DHCP);
//! Initializes the lwIP TCP/IP stack. //!
//! \\param pucMAC is a pointer to a six byte array containing the MAC //! address to be used for the interface.
//! \\param ulIPAddr is the IP address to be used (static). //! \\param ulNetMask is the network mask to be used (static). //! \\param ulGWAddr is the Gateway address to be used (static).
//! \\param ulIPMode is the IP Address Mode. \\b IPADDR_USE_STATIC will force //! static IP addressing to be used, \\b IPADDR_USE_DHCP will force DHCP with //! fallback to Link Local (Auto IP), while \\b IPADDR_USE_AUTOIP will force //! Link Local only. //!
//! This function performs initialization of the lwIP TCP/IP stack for the //! Stellaris Ethernet MAC, including DHCP and/or AutoIP, as configured. //!
//! \\return None.
1.1.1、 tcpip_init(lwIPPrivateInit, 0); 这个地方用到了回调函数tcpip_init(void (* initfunc)(void *),
void *arg)
什么是指针函数?函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只
不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。函数指针有两个用途:调用函数和做函数的参数。
1.1.1.1、 lwip_init()Perform Sanity check of user-configurable values, and initialize all modules.
1.1.1.2、 sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE,
TCPIP_THREAD_PRIO);
sys_mbox_fetch(sys_mbox_t mbox, void **msg)
调用sys_arch_timeouts();
1.1.1.3、 static void tcpip_thread(void *arg)
1.2 g_sInternVar.TCP_Pcb[0] = tcp_new(); tcp_alloc() struct tcp_pcb * tcp_new(void) {
return tcp_alloc(TCP_PRIO_NORMAL); }
1.2.1、struct tcp_pcb *tcp_alloc(u8_t prio)
1.2.1.1 pcb = memp_malloc(MEMP_TCP_PCB);//获取一个pcb空间
如果pcb为空,试着关闭一个最老的正在时间等待的连接,然后再次分派空间 如果还为空,试着关闭活动连接比这个新的优先级低,再次分配空间 分配后给pcb进行初始化。。。一大堆结构体参数
/* the TCP protocol control block */
1.2.1.。。。。pcb返回给tcp_new,返回给g_sInternVar.TCP_Pcb[0]
1.3 tcp_bind(g_sInternVar.TCP_Pcb[0], IP_ADDR_ANY, 32322); /**绑定 本地IP地址和端口
* Binds the connection to a local portnumber and IP address. If the * IP address is not given (i.e., ipaddr == NULL), the IP address of * the outgoing network interface is used instead. *
* @param pcb the tcp_pcb to bind (no check is done whether this pcb is * already bound!)
* @param ipaddr the local ip address to bind to (use IP_ADDR_ANY to bind * to any local address * @param port the local port to bind to * @return ERR_USE if the port is already in use * ERR_OK if bound */
1.4 addr = lwIPLocalIPAddrGet();
正在阅读:
lwip学习笔记10-15
完形填空201-18
《山东省安全生产条例》参考题库01-20
回执单格式02-16
政协副主席述职述德述廉报告09-26
旗下营大桥左线墩柱开工报告09-26
厦门市2011—2012学年(下)高一数学质量检测06-06
陶瓷工艺学10-15
山西毕业生网02-08
难忘的第一次冲浪作文500字06-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 笔记
- 学习
- lwip
- 计算机网络课后习题答案
- 光学实验讲义
- 《函数奇偶性》教学设计
- 高一数学必修3 第一章 算法初步测试题
- 24小时计时法练习题
- 贵州重点项目-晴隆中医院建设项目可行性研究报告
- 山东省事业编考试题库-整理历年真题及模拟题
- 数控铣床丝杆间隙对加工的影响分析
- 2018年工商局长在开展政风行风评议大会上的讲话
- 《狼牙山五壮士》第一课时基于教学目标的教学设计
- 2019届高考生物第一轮阶段综合测评试题
- 色彩教案 - 图文
- 创业计划书编制指南(参考)
- 全国计算机等级考试二级,C语言考前复习资料重点
- 防水承包协议
- 2018衡阳市小学毕业小升初模拟数学试题(共4套)附详细答案附答案
- 高等院校大学生就业难的分析及对策
- 公园作文之盘锦湖滨公园导游词
- 类与对象
- 第五届外文歌曲大赛主持词