LWIP 移植笔记(一)

本文详细介绍了LWIP协议在多线程操作系统中的移植过程,涉及数据类型定义、邮箱和信号量的使用、等待超时处理、多线程中的三个进程角色以及临界区保护和底层驱动的实现。LWIP通过邮箱和信号量实现进程间的通信,利用超时函数管理事件,并在单进程中处理所有层次的工作,确保高效响应。
摘要由CSDN通过智能技术生成

数据类型的定义

LWIP协议内部使用的数据类型的定义:u8_t, s8_t, u16_t, u32_t等。

邮箱和信号量

实现与信号量和邮箱操作相关的函数,比如建立、删除、等待、释放等。

如果是裸机,使用者必须自己去建立一套信号量和邮箱相关的机制。

LWIP使用邮箱和信号量来实现与上层应用与协议栈间、下层硬件驱动与协议栈间的信息交互。

实际上,LWIP只在一个进程内实现了各个层次的所有工作:

  • LWIP完成相关初始化后,会阻塞在一个邮箱上,等待接收数据进行处理。
  • 这个邮箱内的数据可能来自底层硬件驱动接收到的数据包,也可能来自应用程序。
  • 当在该邮箱内取得数据后,LWIP会对数据进行解析,然后再依次调用协议栈内部上层相关处理函数处理数据。
  • 处理结束后,LWIP继续阻塞在邮箱上等待下一批数据。
  • 当然LWIP还有一大串的内存管理机制用以避免在各层间交互数据时大量的时间和内存开销。

信号量也可以用在应用程序与协议栈的相互通信中:

  • 应用程序要发送数据了&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值