这是我第一次为ADS7846的linux SPI框架编写驱动程序。 找到这个优秀的教程来了解linux SPI的概念:--- http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=57&Itemid=62
它还有一个样本co-de。 https://github.com/scottellis/spike/blob/part3/spike.c
1>几点我无法理解为什么我们使用信号量 访问 - spike_dev.user_buff。
我们真的需要信号量吗?因为我的应用程序一次只会读取()或写()或打开()驱动程序?
2 - ;另外要选择我们使用的芯片选择: - / *指定芯片选择线* /
SPI_BUS_CS1
这就是为什么我们没有指定CS-line连接到哪个PORT?
3>正如我所读的那样,spinlock应该与interupt处理程序一起使用。这个螺旋锁在驱动程序中的用途是什么? 这里我们没有spi Interupt handler.But在访问时 - spi_async& spi_device - 我们使用的是spinlock?
spin_lock_irqsave spi_async spin_unlock_irqrestore
4>我们也可以在同一个SPI设备上注册多个“协议驱动程序”吗?
任何建议都将受到赞赏。
答案 0 :(得分:0)
2 - ;在.controllerdata中可以提到总线num和chipselect是枚举SPI设备
3>它用于可以睡觉的儿童