1. 完善BSP设置 1.1 网卡驱动完善 将上一章节封装出来的三个接口分别填入网络驱动操作集函数中调用: static int netifInit(struct netdev *pnetdev) {...
全志D1开发(十四)网络驱动之网络数据传输
1. 发送数据 发送和接收数据的流程基本参考了uboot,只是为接收添加了中断支持。我们先来看看发送数据的实现: int emacTransmit(struct netdev *pnetdev, st...
全志D1开发(十三)网络驱动之网络硬件MAC初始化
网络MAC控制器的初始化流程和SD控制器其实类似,大致分为以下几步: 引脚复用:老生常谈的东西,在使用MAC功能之前需要将引脚复用设置正确,由于本次我们采用的uboot自带网络功能,已经将引脚复用初始...
全志D1开发(十二)网络驱动之网络硬件PHY初始化
1. 网卡PHY操作集 和SD卡驱动讲解一样,我们不会对全志D1的MAC和PHY寄存器做深入的讲解,同样只关心通用的处理流程和一些必要的设置思想,具体的细节请查阅数据手册和源码。 SylixOS下对P...
全志D1开发(十一)网络驱动之网络设备初始化
1. 网络驱动操作集 类似于SD适配器有操作集,SylixOS的网络驱动也有自己的操作集,是通过 struct netdev_funcs 数据结构来表示: /* * network driver fu...
全志D1开发(十)SD驱动之挂载根文件系统
1. 完善SD驱动 1.1 完善SD控制和传输函数 根据上一章节封装的几个硬件设置接口,在控制和传输函数中相应位置进行调用: static int sdIoctl (PLW_SD_ADAPTER ps...
全志D1开发(九)SD驱动之控制器硬件设置
1. 硬件初始化 本文章不会对全志控制器的具体寄存器做详细的分析,只会关注接口封装或者设置时一般的流程或者共性的东西,详细的寄存器意义大家可以查阅数据手册或者源码理解。 控制器的硬件初始化主要包括以下...
全志D1开发(八)SD驱动之注册Host信息
1. 注册SD Memory设备驱动 在SylixOS的SD框架设计中,需要将主控制器驱动和设备驱动分别注册到SDM框架中以方便管理。使用内核SDM相关接口之前需要先调用 API_SdmLibInit...
全志D1开发(七)SD驱动之创建SD适配器
1. SD适配器简介 由于SylixOS的SD协议栈设计最开始是借鉴内核中的I2C和SPI框架的,具体的历史可以参见曾老师的博客http://blog.chinaunix.net/uid-302963...
全志D1开发(六)SD驱动之SylixOS SD框架
SylixOS下的SD协议栈的整体框架如下所示: 最底下是SD控制器硬件,根据具体的实现大致分为两类:一类是SD协议中定义的标准控制器SDHC,比如zynq7000;另一类是各个厂商自己实现的非标准控...
全志D1开发(五)SD驱动之SD协议简介
1. 总线拓扑 SD卡定义了两种总线来进行通信,SD总线和SPI总线,一般SD总线用的较多,本次我们以SD总线为例进行讲解驱动的编写,SD在设计上可以挂接多个SD设备,如下所示。 虽然设计上同一条SD...
全志D1开发(四)添加中断控制器驱动
1. riscv中断框架回顾 在riscv中,中断被分为CLINT和PLIC两类,CLINT负责架构定时器和核间中断管理,PLIC负责外设中断的管理。由于本系列教程我们的定时器没有选用架构的定时器,所...