有没有SPI接口的NAND FLASH

 我来答
lx...n@163.com
2017-10-30 · 超过30用户采纳过TA的回答
知道答主
回答量:102
采纳率:66%
帮助的人:47.8万
展开全部
在spi/spi.h>头文件中包含有内核文档,做为主要的源码,你应该详读内核API文档的相关章节.本文只是概览,在了解细节前有个大致的图景是好的.
SPI请求会进入到I/O队列中.请求给定的SPI设备也是按照FIFO顺序进行的,通过完成机制异步通知.也同简单的同步措施:先写在读出来.
有俩类SPI驱动:
控制器驱动(Controller drivers)...集成在SOC中的控制器,经常扮演Master和Slave双角色.这类驱动直接接触到硬件层的寄存器甚至使用DMA.亦或者扮演bitbanger,仅需要GPIO脚;
协议驱动(Protocoldrivers)...在控制器和slave或者控制器和另外一条SPI链路上的Master传递消息.协议驱动是将控制器读到的数据,比如是一堆0,1代码,解析成有意义的协议数据;
对于协议驱动应该是我们要写的,spi在linux内核中有spi子系统分为spi核心层,就类似USBcore一样是主控制器部分,另一个就是spi设备层了.前者内核帮咱写好了,为了让你的spi设备能工作,就得借助spicontroller driver导出的一些设施来编写protocoldrivers了.
struct spi_device结构封装了俩类驱动间的master-side接口.
有一个最小化SPI编程接口的core,专注于使用板级初始化代码提供的设备表并借助于驱动模型来连接controller和protocol驱动.在sysfs文件系统中,SPI视图:

1 /sys/devices/.../CTLR ... physical node for a given SPI controller
2
3 /sys/devices/.../CTLR/spiB.C ... spi_device on bus "B",
4 chipselect C, accessed through CTLR.
5
6 /sys/bus/spi/devices/spiB.C ... symlink to that physical
7 .../CTLR/spiB.C device
8
9 /sys/devices/.../CTLR/spiB.C/modalias ... identifies the driver
10 that should be used with this device (for hotplug/coldplug)
11
12 /sys/bus/spi/drivers/D ... driver for one or more spi*.* devices
13
14 /sys/class/spi_master/spiB ... symlink (or actual device node) to
15 a logical node which could hold class related state for the
16 controller managing bus "B". All spiB.* devices share one
17 physical SPI bus segment, with SCLK, MOSI, and MISO.

需要注意的是控制器类状态的实际位置取决于您是否开启CONFIG_SYSFS_DEPRECATED标志.此时,唯一的特定类状态是总线编号("B" in "spiB"),所以/sys/class下的那些入口项是唯一的识别总线的标志.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式