W5300网卡芯片在stm32 ucosIII的移植

1.ucosIII说明

因为ucosiii没有设备驱动模型的概念,所以ucosIII驱动的移植和操作系统本身关系不大,更多和板卡、cpu有更大的关系。

2.驱动移植基本概念分析

基于m3、或m4的cpu来进行后续讨论。当我们从cpu的官网下载了标准外设库、补充库、第三方库后,基本的外设驱动就有了。目前观察发现usb驱动、网卡驱动、外部flash、外部sd、外部ram的驱动和具体的驱动芯片有关。

3.网卡驱动移植

我们目前准备使用的网卡是w5300。所以我们的驱动移植更多的工作是匹配cpu和网卡自带的驱动之间的矛盾。

  1. 打开w5300的官网,https://www.wiznet.io/product-item/w5300/
  2. 可以看到提供的资源如下图所示:主要包括数据手册,推荐原理图,驱动文件。

下载后的文件如下:

第一个文件夹内部是驱动文件、第二个文件夹是推荐原理图、第三个文件是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除外)供业务层调用。

  1. 应用程序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的移植相关推荐

  1. mysql 移植ucos_基于STM32F767的UCOSIII移植学习

    (一)移植前的准备 1.HAL库基本工程模板 新建一个工程模块,其中包含LED驱动和串口驱动程序即可,用于验证UCOS-III系统能够正常工作. 2.UCOS-III源码准备 去Micrium官网下载 ...

  2. uCOS-III应用开发笔记之一:uCOS-III在STM32的移植

    uCOS-III实时操作系统在MCU平台被广泛使用,在这里我们将简单的记录如何将uCOS-III实时操作系统移植到目标平台上并运行. 1.必要的准备 在开始uCOS-III实时操作系统的移植前,我们还 ...

  3. STM32F103移植uCOS-III

    本文主要叙述使用STM32F103C8T6移植uCOSIII操作系统,构建3个任务,以1s和3s洲际对LED进行点亮-熄灭控制,以2s周期通过串口发送"hello uc/OS! 欢迎来到RT ...

  4. 移植ucos-III到stm32f103c8t6

    昨天在看stm32相关资料时看到野火的教程<uCOS-III 应用开发指南-基于 STM32F103系列>,试着移植ucos-iii到stm32上,整个过程还算比较顺利的,但遇到了一个比较 ...

  5. STM32开发 -- UCOSII移植

    一.UCOS简介 之前讲过一部分UCOSII,参看:STM32开发 – UCOSII 但是讲的有点糙了,现在参看正点原子的STM32F4 UCOS开发手册 V3.0,重点看一下UCOSII和UCOSI ...

  6. IAR下μCosIII移植心得

    2种方法的移植体验让我有了想法 一.野火和网上的移植方法相同之处 都是下载ucosIII源文件,原封不动的拷过来 UcosIII源文件的获取:从官网www.micrium.com下载ucosIII源文 ...

  7. 【UCOSIII操作系统】简介

    UCOSIII操作系统 现在开始整理UCOSIII实时操作系统的内容 UCOSIII 简介 关于UCOSIII的移植 现在开始整理UCOSIII实时操作系统的内容 UCOSIII其他内容导航不迷路 U ...

  8. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

    <基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...

  9. uc/OS-III移植到stm32f103c8进行多任务实验

    文章目录 一.UCOSIII介绍 1.简介 2.UCOSIII中的任务 二.将uc/OS-III移植到stm32f103c8 1.创建CubeMx工程 2.进行uCOS-III的移植 三.构建三个任务 ...

最新文章

  1. 开源 免费 java CMS - FreeCMS-标签 channelList .
  2. HashMap,LinkedHashMap,TreeMap的有序性
  3. Linux:终端自定义title
  4. halfstone 原理_HashMap的结构以及核心源码分析
  5. 前端学习(1376):app.use方法
  6. 计算机语言学 自然语言处理程序,利用知网进行(计算机)自然语言处理
  7. php 自动切图,前端工程师技能之photoshop巧用系列扩展篇自动切图
  8. 特斯拉联合苹果发难 要对小鹏汽车“窃密”员工动手了...
  9. 关于mysql文件的.frm文件的导入
  10. Zend Framework 开发记录 - 代码片段–jquery–select控件
  11. 电商项目的app学习笔记(一)---webpack相关配置
  12. android定位!每个程序员都必须掌握的8种数据结构!完整版开放下载
  13. [转载]JFC vs. AFC
  14. 【ArcGIS风暴】ArcGIS10.6栅格计算器(Raster Calculator)用法详解
  15. 百度鹰眼服务平台部署教程
  16. kafka connector使用(Docker一键启动版)
  17. 对 捕鱼达人1.01 的全程破解分析
  18. VS实现rar格式压缩包的解压详解
  19. iOS 集成苹果登录及苹果图标的制作要求
  20. 算法入门1:基本概念

热门文章

  1. [FineReport帆软]填报全选及批量打印
  2. c语言中阻止程序退出的函数,(转)C语言中Exit函数的使用
  3. 链改进行时:中部地区首个区块链产业园设立链改综合试验区
  4. 【XJC-1/3 DC220V静态冲击继电器】
  5. 【NOIP2014模拟11.2B组】人品问题
  6. 人生再次来到十字路口
  7. 强烈推荐的一款 Java 反编译工具:JAD
  8. GRU(Gated recurrent unit)
  9. oracle awr使用方式,Oracle中AWR的使用
  10. 剑指offer编程试题Java实现--64.滑动窗口的最大值