[发明专利]一种针对W25Q16DV的SPI Flash驱动实现方法在审
申请号: | 201711375119.7 | 申请日: | 2017-12-19 |
公开(公告)号: | CN108121534A | 公开(公告)日: | 2018-06-05 |
发明(设计)人: | 王鹏 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 李修杰 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 驱动 外设驱动 可维护性 主机驱动 实例化 简化设备 设备模型 便利 升级 维护 | ||
本发明提供一种针对W25Q16DV的SPI Flash驱动实现方法,所述方法包括以下步骤:外设驱动的实例化及注册;probe函数的实现;SPI Flash读接口的实现;SPI Flash写接口的实现。本发明通过遵循主机驱动和外设驱动分离的设计思想,分别对外设驱动的实例化及注册、probe函数、SPI Flash读接口的实现以及SPI Flash写接口进行设计,完成了对W25Q16DV的SPI Flash的驱动的设计,解决当前现有的W25Q16DV设备,其驱动采用主机驱动与外设驱动集中的方式,可维护性差的问题,在设备模型的基础上进一步简化设备驱动的实现,具有更好的可维护性,为驱动的维护升级提供了最大限度的便利。
技术领域
本发明涉及存储驱动设计领域,特别是一种针对W25Q16DV的SPI Flash驱动实现方法。
背景技术
Linux系统中的SPI、IIC和USB等子系统都利用了典型的主机驱动与外设驱动分离的思想,主机端只负责产生总线上的传输波形,外设端只通过标准的API让主机端以适当的波形访问自身,其中涉及4个软件模块:
1.主机端驱动。根据具体的SPI、IIC和USB等控制器的硬件手册,操作具体的SPI、IIC和USB等控制器,产生总线的各种波形。
2.连接主机和外设的纽带。外设不直接调用主机端的驱动来产生波形,而是调一个标准的API。由这个标准的API把这个波形的传输请求间接“转发”给了具体的主机端驱动。
3.外设端的驱动。外设接在SPI、IIC和USB这样的总线上,但是它们本身可以是触摸屏、网卡、声卡或者任意一种类型的设备。在相关的i2c_driver、spi_driver、usb_driver这种xxx_driver的probe()函数中去注册它具体的类型,当这些外设要求SPI、IIC和USB等去访问它的时候,它调用“连接主机和外设的纽带”模块的标准API。
4.板级逻辑。板级逻辑用来描述主机和外设是如何互联的,它相当于一个“路由表”。
Linux通过上述设计方法,将杂乱且不友好的代码变成了4个轻量级的模块,每个模块各得其所。
而对于现有的W25Q16DV设备,其驱动采用主机驱动与外设驱动集中的方式,可维护性差。
发明内容
本发明的目的是提供一种针对W25Q16DV的SPI Flash驱动实现方法,旨在解决当前现有的W25Q16DV设备,其驱动采用主机驱动与外设驱动集中的方式,可维护性差的问题,实现设备驱动的简化,提高可维护性。
为达到上述技术目的,本发明提供了一种针对W25Q16DV的SPI Flash驱动实现方法,包括以下步骤:
S101、外设驱动的实例化及注册;
S102、probe函数的实现;
S103、SPI Flash读接口的实现;
S104、SPI Flash写接口的实现。
优选地,所述外设驱动用结构体来描述,包括probe函数、remove函数、suspend函数以及resume函数的接口。
优选地,所述probe函数的实现具体包括:
S301、将片选引脚设为输出;
S302、去保护;
S303、读取设备ID;
S304、初始化mtd_info;
S305、注册mtd_info。
优选地,所述去保护包括去除寄存器的保护状态和存储区间的保护状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711375119.7/2.html,转载请声明来源钻瓜专利网。