w5300在ucosIII的移植
W5300网卡芯片在stm32 ucosIII的移植
1.ucosIII说明
因为ucosiii没有设备驱动模型的概念,所以ucosIII驱动的移植和操作系统本身关系不大,更多和板卡、cpu有更大的关系。
2.驱动移植基本概念分析
基于m3、或m4的cpu来进行后续讨论。当我们从cpu的官网下载了标准外设库、补充库、第三方库后,基本的外设驱动就有了。目前观察发现usb驱动、网卡驱动、外部flash、外部sd、外部ram的驱动和具体的驱动芯片有关。
3.网卡驱动移植
我们目前准备使用的网卡是w5300。所以我们的驱动移植更多的工作是匹配cpu和网卡自带的驱动之间的矛盾。
- 打开w5300的官网,https://www.wiznet.io/product-item/w5300/
- 可以看到提供的资源如下图所示:主要包括数据手册,推荐原理图,驱动文件。
下载后的文件如下:
第一个文件夹内部是驱动文件、第二个文件夹是推荐原理图、第三个文件是w5300的datasheet。
其他需要的参考文件可能就是如下两个:一个cpu的芯片手册,一个编程指导。
到现在准备工作告一段落,下面就进入实际操作的层面了。
3.1驱动源码分析
驱动源码的目录如下所示:
除了帮助文件,我们最主要需要关心Ethernet、Internet两个文件夹。
1)驱动文件
Ethernet文件夹包含驱动文件和驱动文件访问接口。
其中w5300.c、w5300.h是具体访问硬件的驱动文件,socket.c socket.h是提供给应用层访问的接口。在socket.c socket.h中提供了tcp udp的协议。网络层,物理层,传输层,链路层的协议由w5300硬件实现。
2)协议文件
Internet文件夹包括了各种网络协议的支持
目录的所有文件都调用socket.c socket.h的函数访问网络控制器的寄存器。不同的协议主要是提供不同的协议(大部分都是应用层,mqtt除外)供业务层调用。
- 应用程序demo
下载推荐的demo程序,里面有tcp,udp的demo。 结合芯片手册可以对每个寄存器有更直观的理解和认识。
3.2推荐电路分析
因为网卡接到了Flexible static memory controller (FSMC)区域bank3,推荐的典型电路如下所示:剩余的工作主要在于驱动文件的移植。
3.3数据手册关键点
Fsmc 的内存地址:
我们的接入地址是fsmc bank3,所以基地址是0x8000 0000。
W5300功能框图
所以我们配置该模块就是配置器寄存器。
W5300寄存器的分布图如下:BA就是fsmc bank3的基地址
真正的移植工作就是参考datasheet配置这些寄存器(Mode Register,Indirect Mode Registers,COMMON Registers,SOCKET Registers),实现网卡的init,close,read,write等类似的函数并提供给其他模块使用。
到现在移植步骤基本表达清楚了,后续如果有时间在输出一个关于网卡每个寄存器的翻译描述文件。
w5300在ucosIII的移植相关推荐
- mysql 移植ucos_基于STM32F767的UCOSIII移植学习
(一)移植前的准备 1.HAL库基本工程模板 新建一个工程模块,其中包含LED驱动和串口驱动程序即可,用于验证UCOS-III系统能够正常工作. 2.UCOS-III源码准备 去Micrium官网下载 ...
- uCOS-III应用开发笔记之一:uCOS-III在STM32的移植
uCOS-III实时操作系统在MCU平台被广泛使用,在这里我们将简单的记录如何将uCOS-III实时操作系统移植到目标平台上并运行. 1.必要的准备 在开始uCOS-III实时操作系统的移植前,我们还 ...
- STM32F103移植uCOS-III
本文主要叙述使用STM32F103C8T6移植uCOSIII操作系统,构建3个任务,以1s和3s洲际对LED进行点亮-熄灭控制,以2s周期通过串口发送"hello uc/OS! 欢迎来到RT ...
- 移植ucos-III到stm32f103c8t6
昨天在看stm32相关资料时看到野火的教程<uCOS-III 应用开发指南-基于 STM32F103系列>,试着移植ucos-iii到stm32上,整个过程还算比较顺利的,但遇到了一个比较 ...
- STM32开发 -- UCOSII移植
一.UCOS简介 之前讲过一部分UCOSII,参看:STM32开发 – UCOSII 但是讲的有点糙了,现在参看正点原子的STM32F4 UCOS开发手册 V3.0,重点看一下UCOSII和UCOSI ...
- IAR下μCosIII移植心得
2种方法的移植体验让我有了想法 一.野火和网上的移植方法相同之处 都是下载ucosIII源文件,原封不动的拷过来 UcosIII源文件的获取:从官网www.micrium.com下载ucosIII源文 ...
- 【UCOSIII操作系统】简介
UCOSIII操作系统 现在开始整理UCOSIII实时操作系统的内容 UCOSIII 简介 关于UCOSIII的移植 现在开始整理UCOSIII实时操作系统的内容 UCOSIII其他内容导航不迷路 U ...
- 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告
<基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...
- uc/OS-III移植到stm32f103c8进行多任务实验
文章目录 一.UCOSIII介绍 1.简介 2.UCOSIII中的任务 二.将uc/OS-III移植到stm32f103c8 1.创建CubeMx工程 2.进行uCOS-III的移植 三.构建三个任务 ...
最新文章
- 开源 免费 java CMS - FreeCMS-标签 channelList .
- HashMap,LinkedHashMap,TreeMap的有序性
- Linux:终端自定义title
- halfstone 原理_HashMap的结构以及核心源码分析
- 前端学习(1376):app.use方法
- 计算机语言学 自然语言处理程序,利用知网进行(计算机)自然语言处理
- php 自动切图,前端工程师技能之photoshop巧用系列扩展篇自动切图
- 特斯拉联合苹果发难 要对小鹏汽车“窃密”员工动手了...
- 关于mysql文件的.frm文件的导入
- Zend Framework 开发记录 - 代码片段–jquery–select控件
- 电商项目的app学习笔记(一)---webpack相关配置
- android定位!每个程序员都必须掌握的8种数据结构!完整版开放下载
- [转载]JFC vs. AFC
- 【ArcGIS风暴】ArcGIS10.6栅格计算器(Raster Calculator)用法详解
- 百度鹰眼服务平台部署教程
- kafka connector使用(Docker一键启动版)
- 对 捕鱼达人1.01 的全程破解分析
- VS实现rar格式压缩包的解压详解
- iOS 集成苹果登录及苹果图标的制作要求
- 算法入门1:基本概念
热门文章
- [FineReport帆软]填报全选及批量打印
- c语言中阻止程序退出的函数,(转)C语言中Exit函数的使用
- 链改进行时:中部地区首个区块链产业园设立链改综合试验区
- 【XJC-1/3 DC220V静态冲击继电器】
- 【NOIP2014模拟11.2B组】人品问题
- 人生再次来到十字路口
- 强烈推荐的一款 Java 反编译工具:JAD
- GRU(Gated recurrent unit)
- oracle awr使用方式,Oracle中AWR的使用
- 剑指offer编程试题Java实现--64.滑动窗口的最大值