本文做记录摘抄,加上自己的体会:

文章标题:STM32使用LWIP实现DHCP客户端

http://www.cnblogs.com/dengxiaojun/p/4379545.html

该文章介绍了几点,LWIP源码的内容。关键点:1、include下新建arch文件夹,在arch文件夹下的sys_arch.c多任务定时检测功能,配合的timer.c文件完成协议栈心跳抽水泵。

2、lwipopts.h文件是对协议栈的配置文件,内存大小设置、是否使用操作系统、是否使能DHCP功能。

3、netif文件夹下的ethernetif.c完成的是协议栈与网卡驱动衔接的功能。也就是说将LWIP协议栈移植适应不同的网卡芯片,这里就是重点需要更改的地方。

4、main函数中的LWIP_Polling函数就是一个定时轮训的过程,这样就维持了协议栈的正常工作。

下面是正点原子提供的《STM32 LWIP开发手册》的阅读记录。

一篇文档读几遍每一遍的阅读理解程度是不一样的,这应该是我第三遍读此文档,相信还要读几遍。

在第8页有张图:REF_Clk out模式时的REF_CLK时钟源。这张图上STM32F407与LAN8702之间的关系一清二楚了。STM32F407内置MAC层硬件,LAN8702是PHY层硬件。他们之间通过RMI总线连接。RMI总线非常简洁,就9根线。既然STM32F407驱动LAN8702,那么LAN8702提供了哪些接口供STM32F407使用了呢,主要的就是后面提到的BCR和BSR。控制寄存器和状态寄存器。对于一个网卡能有什么状态呢,也不过是网卡当前运行的速度。控制寄存器稍微多一些,比如提供回路测试功能。

STM32提供的库中对于PHY级寄存器的定义在stm32f4x7.h中,同理,STM32对PHY级芯片的初始化工作就再stm32f4x7.c中---Eth_Init()函数完成对PHY芯片的初始化。

stm32f4x7_eth_conf.h中有对PHY芯片的选择和配置,比如PHY芯片特殊功能寄存器的地址。

LWIP在STM32上的移植的更多相关文章

  1. 怎样把UCos-ii_在STM32上的移植

    下载代码 stm32 标准外设库是 stm32 全系列芯片的外设驱动,有了它能够大大加速我们 开发 stm32. 首先从 st 公司的站点下载最新的 stm32 标准外设库,写本文时最新的版本号是 V ...

  2. FreeRTOS移植到STM32上的移植过程

    所有的单片机都是顺序执行的,而对于多任务而言就显得力不从心了,虽然在一些小项目中可以通过定时器来实现,但这种实现方式没有实时性,一旦任务需要在规定时间内做出响应,那只能通过实时操作系统来完成了.在很多 ...

  3. KEIL MDK环境下uCOS-II在LPC17xx上的移植实例

    1. 知识准备 要想对ucos-ii的移植有较深的理解,需要两方面知识: (1)目标芯片,这里是lpc17xx系列芯片,它们都是基于ARMv7 Cortex-M3内核,所以这一类芯片的ucos-ii移 ...

  4. STM32上移植ds1307笔记

    PS:网上关于ds1307的资料最多还是基于51等单片机的,和stm32上还是略有差别,代码是参考了http://www.openedv.com/posts/list/20167.htm 但是他的代码 ...

  5. 基于STM32的uCGUI移植和优化

    基于STM32的uCGUI移植和优化 首先在开始这个说明之前,要简要说明下具体的环境: 编译工具:MDK4.20 开发板:安富莱v2版开发板 调试器:JLink  v8盗版 移植篇 相信大家有移植经验 ...

  6. Qt4.8.5在ARM9上的移植

    Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...

  7. stm32上的Lava虚拟机开发进度汇报(1)

    这几天我打算在stm32上做一个lava的虚拟机,只要160*80的黑白显示就行了,主要是想怀旧一下,嘿嘿. 目前的进度是图形显示和按键处理完成了,还有文本显示.文件处理.其他函数等. 当然,这都仅是 ...

  8. OpenCV在ARM上的移植

    OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...

  9. UCOSII在STM32F1上的移植

    UCOSII在STM32F1上的移植 首先准备好一份STM32F1的工程.UCOSII源码. 在准备好的工程中新建一个"UCOSII"文件夹(或者取其它名字也行): UCOSII文 ...

随机推荐

  1. 【Luogu】P1681最大正方形2(异或运算,DP)

    题目链接 不得不说attack是个天才.读入使用异或运算,令que[i][j]^=(i^j)&1,于是原题目变成了求que数组的最大相同值. 然而我还是不理解为啥,而且就算简化成这样我也不会做 ...

  2. django-Ajax发送POST请求-csrf跨站请求的三种方式

    第一种 <script> $(".eq").on("click",function () { $.ajax({ url:"/eq/&quo ...

  3. 【bzoj1854】[Scoi2010]游戏 - 并查集

    lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使 ...

  4. jenkins执行自动化用例(详细、有用、mark 优先级高高高)

    http://blog.sina.com.cn/s/blog_68f262210102vx8o.html 第七章 测试用例接入jenkins自动运行 ------Web自动化测试之Webdriver+ ...

  5. STL学习笔记(五) 算法

    条款30:确保目标区间足够大 条款31:了解各种与排序有关的选择 //使用unaryPred划分输入序列,使得unaryPred为真的元素放在序列开头 partition(beg, end, unar ...

  6. BZOJ4726: [POI2017]Sabota?

    $n \leq 500000$的树,开始有一个点是坏的,如果一个子树中坏点比例(不包括根节点)超过x那这整棵子树就会变坏,问最坏情况下不超过$K$个坏点的情况下$x$最小是多少. 被坑成傻逼.. 可以 ...

  7. Poi写文件时报java.io.IOException: Read error

    使用POI报表时不停的报java.io.IOException: Read error,看网上是说关闭了InputStream所导致的,由于我的InputStream是读取和写入都是用的同一个,所以就 ...

  8. Ajax && json(原始)

    function findSend() { $.ajax({ // async: false, // cache: true, type: "POST", url: "I ...

  9. GridView动态添加View

    activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...

  10. 洛谷——P2819 图的m着色问题

    P2819 图的m着色问题 题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的 ...