![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPI驱动框架源码分析
zuijinzhao
这个作者很懒,什么都没留下…
展开
-
Linux驱动修炼之道-SPI驱动框架源码分析(上)
SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,可工作于全双工模式。相关通讯设备可工作于m/s模式。主设备发起数据帧,允许多个从设备的存在。每个从设备有独立的片选信号,SPI一般来说是四线串行总线结构。接口:SCLK——Serial Clock(output from master)时钟(主设备发出)MOSI/SIMO——Master Output, Slave I转载 2012-09-22 14:57:19 · 545 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(中-续)
然后看这里是怎样注册spi主机控制器驱动的:view plainint spi_register_master(struct spi_master *master) { 。。。。。。。。。。。。。。。。 /*将spi添加到内核,这也是sys/class/Spi_master下产生Spi0,Spi1的原因*/转载 2012-09-22 18:35:30 · 825 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(中)
这篇来分析spi子系统的建立过程。嵌入式微处理器访问SPI设备有两种方式:使用GPIO模拟SPI接口的工作时序或者使用SPI控制器。使用GPIO模拟SPI接口的工作时序是非常容易实现的,但是会导致大量的时间耗费在模拟SPI接口的时序上,访问效率比较低,容易成为系统瓶颈。这里主要分析使用SPI控制器的情况。这个是由sys文件系统导出的spi子系统在内核中的视图了。首先了解一下Linu转载 2012-09-22 14:58:55 · 568 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(下)
这篇文档主要介绍spi数据传输过程。当应用层要向设备传输数据的时候,会通过ioctl向设备驱动发送传输数据的命令。如图,向SPI从设备发送读写命令,实际的读写操作还是调用了主机控制器驱动的数据传输函数。transfer函数用于spi的IO传输。但是,transfer函数一般不会执行真正的传输操作,而是把要传输的内容放到一个队列里,然后调用一种类似底半部的机制进行真正的传输。这是因为,s转载 2012-09-22 18:36:15 · 484 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(下-续)
spi_async在spi.h中定义的:view plain"font-size:18px;">static inline int spi_async(struct spi_device *spi, struct spi_message *message) { message->spi = spi; ret转载 2012-09-22 18:36:57 · 706 阅读 · 0 评论