lwIP移植笔记 - ethernet篇

我们已经完成了lwIP的系统移植,那么我们就需要进行ethernet的移植工作。

ethernet的移植工作,主要是“填空“ethernetif.c的过程!(PS. 再一次感谢Adam Dunkels大侠的无私工作!以及对他的敬意!)

ethernetif.c位置(../src/netif)

一、移植硬件

1. 初始化

实现函数:static    void    low_level_init(struct    netif    *netif);

(1) 初始化MAC地址

(2) 初始化网卡

2. 发送

实现函数:static    err_t    low_level_output(struct    netif    *netif,     struct     pbuf     *p);

(1) 初始化传输 

(2) 发送数据

3. 接收

实现函数:static    struct    pbuf      *low_level_input(struct    netif    *netif);

(1) 读pbuf中的数据

(2) 读数据包 

(3) 释放pbuf

(4) len大小

如果网卡驱动中有定义可以直接引用,否则注释掉。

参考文档

1. Network interfaces management

lwIP移植笔记 - ethernet篇,布布扣,bubuko.com

时间: 2024-11-22 22:33:29

lwIP移植笔记 - ethernet篇的相关文章

lwIP移植笔记 - OS篇

lwIP作为RTOS准标配的TCP/IP,在我们编写网络模块时,经常用到. 本移植笔记使用lwIP的版本为V1.4.1. MDK:            V4.0+ RTOS:          μC/OS-II V2.91 Eval-Board: LPC1752 Ethernet:     ENC28J60 移植lwIP到OS其实就是实现sys.h的过程. 移植文档(doc\sys_arch.txt) Since lwIP 1.4.0, semaphore and mailbox functi

STM32+FreeRtos+Lwip移植笔记Ⅰ

今天开始移植,之后应该还会移植USB的协议栈. 今天早上被一个脑残的问题搞疯了: 原来启动的汇编代码的语句是有位置限制的,上下文必须对齐. 对齐后就没事了: 另外,IMPORT可以用C的extern(全大写)代替.这三个其实都是中断向量,对于IMPORT xPortSysTickHandler,你可以不加进去,在xxxxit.c的IRQ中添加:

STM32+FreeRtos+Lwip移植笔记Ⅱ

现在,遇到了串口调试的问题. 串口传输有两种方案:1)中断函数接收完完整的frame之后用二值信号量触发阻塞的解析数据进程:2)新建队列,中断中将接收的数据send到队列,解析进程读队列http://huangchuanlong.blog.163.com/blog/static/14709020201332775731105/  .

关于lwip移植到ucsos-ii平台的遇到的问题(一)

移植的步骤参照<Day_Day_Up笔记之uCOS-II_LwIP_在_STM32F107_上移植>,<uCOS平台下的LwIP移植笔记>,<嵌入式网络那些事>. 首先说说自己的准备的工程,在lpc1788开发板能够运行的ucos-ii工程,以及lwip协议工程(无操作系统).ucos-II 版本是v2.8.6,lwip版本是v1.4.0. 按照网上搜罗的材料,开始进行移植. 总体思路: 1.文件拷贝,将lwip工程下的相关协议栈代码拷贝到ucos-ii工程目录下. 2

LwIP学习笔记——STM32 ENC28J60移植与入门

0.前言 去年(2013年)的整理了LwIP相关代码,并在STM32上"裸奔"成功.一直没有时间深入整理,在这里借博文整理总结.LwIP的移植过程细节很多,博文也不可能一一详解个别部分只能点到为止. [本文要点] [1]不带操作系统的LwIP移植,LwIP版本为1.4.1. [2]MCU为STM32F103VE,网卡为ENC28J60. [3]移植过程重点描述ethernetif.c和LwIP宏配置等. [4]一个简单的TCP echo例子. [5]力求简单,没有DHCP功能,甚至没有

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递

《javascript权威指南》读书笔记——第二篇

<javascript权威指南>读书笔记--第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字符集 JavaScript程序是用Unicode字符集编写. Unicode是ASCII和Latin-1的超集,支持几乎所有语言. ES3 要求支持Unicode 2.1及后续版本 ES5 要求支持Unicode 3及后续版本 2.1.1 区分大小写 JavaScript是区分大小写的. HTML 并不区分大