w5300在ucosIII的移植

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等类似的函数并提供给其他模块使用。

到现在移植步骤基本表达清楚了,后续如果有时间在输出一个关于网卡每个寄存器的翻译描述文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值