W5500初始化过程
第一步硬件复位
1:拉低RST
2:拉高RST
3:读取通用寄存器0x002e地址以确以太网连接完成(如果读到1,为以太网连接完成)
第二步初始化W5500
1:初始化W5500寄存器函数
- 软复位 向通用寄存器(5'b00000)中的MR模式寄存器(地址是0x0000)写入0x80
- 写入网关地址 向通用寄存器(5'b00000)中的GAR寄存器(地址是0x0001)写入网关地址
- 写入子网掩码 向通用寄存器(5'b00000)中的SUBR寄存器(地址是0x0005)写入子网掩码
- 写入物理地址 向通用寄存器(5'b00000)中的SHAR寄存器(地址是0x0009)写入物理地址
- 写入IP地址 向通用寄存器(5'b00000)中的SHAR寄存器(地址是0x000f)写入IP地址
- 写接收缓冲区大小 向Socket寄存器(5'b00001)中的Sn_RXBUF_SIZE寄存器(地址是0x001e)写入接收缓冲区大小
- 写发送缓冲区大小 向Socket寄存器(5'b00001)中的Sn_TXBUF_SIZE寄存器(地址是0x001f)写入发送缓冲区大小
- 写入重试时间 向通用寄存器(5'b00000)中的RTR寄存器(地址是0x0019)写入重试时间
- 写入重试次数 向通用寄存器(5'b00000)中的RCR寄存器(地址是0x001b)写入重试次数
Socket寄存器有8个寄存器标号为:个数*4+1
2:检查网关服务器
- 向目的地址寄存器写入与本机IP不同的IP值
- 设置socket为TCP模式
- 打开Socket
- 检查socket是否打开失败,如果失败不进行5,6,7条检查
- 设置Socket为Connect模式
- 检查Socket0中断
3:指定Socket(0~7)初始化,初始化端口0
- 设置分片长度,参考W5500数据手册,该值可以不修改:向Socket寄存器(5'b00001)中的Sn_MSSRE寄存器(地址是0x0012)写入分片长度
- 设置端口的端口号 向Socket寄存器(5'b00001)中的Sn_PORT寄存器(地址是0x0004)写入端口号
W5500初始化过程相关推荐
- hadoop作业初始化过程详解(源码分析第三篇)
(一)概述 我们在上一篇blog已经详细的分析了一个作业从用户输入提交命令到到达JobTracker之前的各个过程.在作业到达JobTracker之后初始化之前,JobTracker会通过submit ...
- 操作系统学习:进程、线程与Linux0.12初始化过程概述
本文参考书籍 1.操作系统真相还原 2.Linux内核完全剖析:基于0.12内核 3.x86汇编语言 从实模式到保护模式 ps:基于x86硬件的pc系统 进程 进程是一种控制流集合,集合中至少包含一条 ...
- 超详细解读ORB-SLAM3 单目初始化过程(上篇)
学习ORB-SLAM3单目视觉SLAM中,发现有很多知识点需要展开和深入,同时又需要对系统有整体的认知,为了强化记忆,记录该系列笔记,为自己图方便,也希望对大家有所启发. 因为知识有限,因此先记录初始 ...
- [Spring 深度解析]第7章 IoC容器的初始化过程
7. IoC容器的初始化过程 简单来说,IoC容器的初始化是由前面介绍的refresh()方法来启动的,这个方法标志着IoC容器的正式启动.具体来说,这个启动包括BeanDefinition的Re ...
- nginx的启动初始化过程(一)
nginx的启动初始化在src/core/nginx.c的main函数中完成,也是整个nginx的入口.nginx的初始化主要围绕一个类型为ngx_cycle_t的全局变量ngx_cycle展开. m ...
- 解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起
在 IBM Bluemix 云平台上开发并部署您的下一个应用. 开始您的试用 问题引入 近日我在调试一个枚举类型的解析器程序,该解析器是将数据库内一万多条枚举代码装载到缓存中,为了实现快速定位枚举代码 ...
- 不可逆的类初始化过程
类的加载过程说复杂很复杂,说简单也简单,说复杂是因为细节很多,比如说今天要说的这个,可能很多人都不了解:说简单,大致都知道类加载有这么几个阶段,loaded->linked->initia ...
- android kernel控制台初始化过程
对于我们的android平台,控制台被定义到了串口1上,因此初始化过程就是把控制台的输出配置到串口1上 对kernel控制台初始化是在挂载文件系统之前,由于没有串口的设备文件,不能通过打开设备文件来访 ...
- Mybatis源码解析之Mybatis初始化过程
一.搭建一个简单的Mybatis工程 为了了解Mybatis的初始化过程,这里需要搭建一个简单的Mybatis工程操作数据库,工程结构如下: 一个UserBean.java private int i ...
最新文章
- 深度 | 解决真实世界问题:如何在不平衡类上使用机器学习?
- List.Contains的用法
- 【Python】编程笔记9
- ret2libc过地址随机化
- file相对路径java_浅谈java 中文件的读取File、以及相对路径的问题
- 计算机c语言笔试试题,计算机二级c语言笔试题和面试题答案(2019最新)
- 代码好味道、坏味道与重构
- hadoop 如何连beeline_impala为hadoop续命
- 小程序 ---- (setData关于赋值对象属性的问题)
- Android IOS视频录制技术方案
- python九宫格拼图_利用Python实现朋友圈中的九宫格图片效果
- redis分布式锁实现(以抢红包为例)
- 记事本改字体的代码java_记事本编程切换字体颜色 用java编写一个记事本程序
- 开源OceanBase如何与Prometheus与Grafana监控结合
- 正在踏上正轨--新手菜鸟的前进之路
- H3C交换机基础查询命令
- 笔试题-武汉珞珈德毅笔试题
- RPC框架面试总结-RPC原理及实现
- vue项目点击左侧子菜单,打开一个新的浏览器标签页
- 深入理解java虚拟机-读书笔记2-垃圾收集器和内存分配策略