LWIP
文章平均质量分 84
~Old
Nothing but more and more nothingness
展开
-
LWIP带操作系统的启动流程
【代码】LWIP带操作系统的启动流程。原创 2022-12-14 17:26:31 · 353 阅读 · 0 评论 -
内核动力之源——内存管理
在平常的编程中,大家都会遇到对动态内存的操作,例如创建一个临时数据区域,在程序的某个阶段结束后释放该区域,这就是动态内存的典型应用了。内存分配函数和内存释放函数,无论使用什么语言工具,都不可避免的为用户提供这两个配套函数,像C语言提到的malloc和free函数就是一个典型代表。那么操作系统内部是如何实现对内存的合理管理与分配的呢?在使用标准C库时,经常见到malloc和free这两个内存管理函数,原创 2022-12-14 17:08:07 · 1138 阅读 · 0 评论 -
LwIP带操作系统的移植
LwIP是支持操作系统的,在操作系统的支持下我们可以使用LwIP提供的另外两种API编程接口编程。没有操作系统的时候,我们只能使用RAW编程,相较于其他两种API编程,RAW编程难度较大,需要用户对LwIP协议栈有较深的了解。使用操作系统之后,我们可以多任务运行,将LwIP作为任务来运行。原创 2022-12-12 22:09:09 · 2211 阅读 · 0 评论 -
LwIP——无操作系统启动流程
目录启动流程虚拟网卡控制块发送流程接收流程 总结通过阅读正点原子的无操作系统移植工程的源码,可以总结出LwIP的无操作系统的启动流程。前面一些都是基于其他的外设的初始化,我们只关心这里lwip_comm_init(),这个函数的总流程先给出。 ethernet_mem_malloc:为描述符及缓冲区申请内存,除了这种用算法实现的内存申请函数可以申请内存之外,ST官方给出的例程是使用简单的使用数组来实现申请内存。ethernet_init:配置以太网环境、初始化RMII的IO(通过调用的HAL_E原创 2022-12-11 15:05:26 · 1490 阅读 · 0 评论 -
LwIP——以太网描述符
发送:不需要CPU参与下,把描述符指向的缓冲区数据传输到TX FIFO当中接收:不需要CPU参与下,把RX FIFO中的数据传输到描述符指向的缓冲区当中。其中,ST把描述符分为两种:对应于在HAL库中的头文件stm32f4xx_hal_eth.h中的结构体ETH_DMAInitTypeDef{/*!原创 2022-12-11 14:04:50 · 2405 阅读 · 1 评论 -
LWIP——无操作系统移植
目录移植说明LwIP前期准备 以太网DMA描述符LwIP移植流程添加网卡驱动程序添加LwIP源文件 移植头文件网卡驱动编写移植总结 LwIP的移植可以分为两大类:第一类是只移植内核核心,此时用户应用程序编写只能基于RaW/CallBack API进行;第二类是移植内核核心和上层API函数模块,此时用户可以使用所有三种API进行编程,即除了RaW/CallBack API外,还有Netconn API和Socket API。第一种移植比较简单,只需完成头文件的定义以及根据使用的具体网卡完成ethernetif原创 2022-12-09 22:48:16 · 5274 阅读 · 0 评论 -
LWIP框架
在操作系统中,TCP/IP 协 在用户应用程序和协议栈内核之间也会保持着很明显的分层结构.在操作系统中,TCP/IP协议往往被设计为内核代码的一部分,用户可以使用的只是协议为用户提供的几个API函数, 议往往被设计为内核代码的一部分,用户可以使用的只是协议为用户提供的几个api函数,或者操作系统对网络通信函数进行了完全的封装,用户可以像操作简单文件那样来处理网络连 或者操作系统对网络通信函数进行了完全的封装,用户可以像操作简单文件那样来处理网络连接中的数据(例如常见的BSD socket)。原创 2022-12-08 16:23:01 · 1158 阅读 · 0 评论 -
庐山真面目之——LWIP初探
目录LWIP简介网络层协议分层模型介绍 LWIP源代码结构lwip源码文件说明lwip的contrib包文件说明 以太网接入MCU方案LWIP结构框图lwIP 是 Light Weight(轻型)IP 协议,有无操作系统的支持都可以运行。lwIP 实现的重点 是在保持 TCP/IP 协议主要功能的基础上减少对 RAM 的占用,它只需十几 KB 的 RAM 和 40K 左右的 ROM 就可以运行,这使 lwIP 协议栈适合在低端的嵌入式系统中使用。lwIP 的设计理 念下,既可以无操作系统使用,也可以带操作系原创 2022-12-06 17:37:34 · 1939 阅读 · 0 评论