【发布时间】:2012-12-13 12:39:09
【问题描述】:
这是我第一次为 ADS7846 的 linux SPI 框架编写驱动程序。 找到这个优秀的教程来理解 linux SPI 的概念:--- http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=57&Itemid=62
它还有一个示例代码。 https://github.com/scottellis/spike/blob/part3/spike.c
1> 有几点我无法理解为什么我们使用信号量 访问前——spike_dev.user_buff。
我们真的需要信号量吗?因为有时我的应用程序只会读取()或写入()或打开()驱动程序?
2> 还要选择我们正在使用的芯片选择:-- /* 指定片选线 */
SPI_BUS_CS1
为什么我们不指定 CS 线将连接到哪个端口?
3> 正如我所读到的,自旋锁应该与中断处理程序一起使用。还有这个自旋锁在驱动程序中的用途是什么。 这里我们没有 spi 中断处理程序。但是在访问时 -- spi_async & spi_device -- 我们正在使用自旋锁?
spin_lock_irqsave spi_async spin_unlock_irqrestore
4> 我们是否可以将多个“协议驱动程序”注册到同一个 SPI 设备?
任何建议将不胜感激。
【问题讨论】: