zoukankan      html  css  js  c++  java
  • LWIP在STM32上的移植

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

           文章标题: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芯片特殊功能寄存器的地址。

  • 相关阅读:
    OpenJ_Bailian
    Codeforces Global Round 2: D.Frets On Fire
    Gym 102035 NWU2019组队赛2.0
    Gym 102035H :Zuhair and the Dag
    Gym 102035E:New Max
    Gym
    Linux常用命令-总结
    Linux常用命令
    Linux常用命令
    分布式会话 拦截器 单点登录
  • 原文地址:https://www.cnblogs.com/kanite/p/4975128.html
Copyright © 2011-2022 走看看