2 xiaobu1990 xiaobu1990 于 2014.11.06 23:49 提问

spi驱动实时性如何实现

linux内核中的spi驱动一般都不考虑实时性,都是将message挂到spi控制器的queue上,然后调用
queue_work或者采用类似方法。

现在有个问题:现在有一款spi接口的芯片,希望对该芯片的spi写操作发下去之后能立即写入该芯片中,而不是需要经过某种调度方法之后才生效,与此同时,要保证其他spi接口芯片能正常工作。

那么就可以从2个方面考虑,修改sdk中spi驱动,或者放弃sdk中spi实现方法,重新做一套接口。

目前我想到的修改sdk的方法就是在将message添加到spi控制器queue的时候判断该消息优先级,如果高,则插入queue链表最前面,因为每次spi控制器从queue上取消息都是取第一个位置上的来处理,处理后就删掉,这样执行该message的等待时间就只有前一条消息的执行时间,理论上说这个时间最多也就是将fifo填满的时间,是us级的。

不知道各位还有没有什么比较好的方法,还请指教!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
linux spi驱动开发学习(四)-----spi驱动程序完整流程分析
所有的应用程序使用dev/目录下创建的设备,这些字符设备的操作函数集在文件spidev.c中实现。 点击(此处)折叠或打开 static const struct file_operations spidev_fops = {     .owner =    THIS_MODULE,     /* REVISIT switch to aio prim
如何提高window实时性能
1 概述此文是在实现modbus-RTU通讯的基础上总结而来的,主要讲述了如何提高window做工业控制时的实时性能。PC机上做控制系统,一般就是在window或者linux操作系统上做控制系统软件开发,window上做控制系统,有如下优势:1)现有的设备驱动支持2)各类厂家提供
Linux SPI驱动设计
1. SPI总线结构 SPI串行外设接口,是一种高速的,全双工,同步的通信总线。采用主从模式架构,支持多个slave,一般仅支持单Master SPI接口共有4根信号线,分别是: 设备选择线(SS)、时钟线(SCK)、串行输出数据线(MOSI)、串行输入数据线(MISO). 2. 数据传输过程 主节点通过MOSI线输出数据,从节点在SIMO处从主节点读取数据。同时,也通过SMOI
应用程序和驱动中使用SPI设备的流程
应用程序和驱动中使用SPI设备的流程
Linux下SPI从设备驱动的编写
SPI(Serial Peripheral Interface) 是一个同步的四线制串行线,用于连接微控制器和传感器、存储器及外围设备。三条信号线持有时钟信号(SCLK,经常在10MHz左右)和并行数据线带有“主出,从进(MOSI)”或是“主进,从出(MISO)”信号。数据交换的时候有四种时钟模式,模式0和模式3是最经常使用的。每个时钟周期将会传递数据进和出。如果没有数据传递的话,时钟将不会循环。
在Zynq 7000平台上使用Linux spidev.c驱动
在上一篇博客中,我介绍了如何配置Vivado下的硬件工程、例化SPI硬件接口和如何使用petalinux加载Xilinx提供的SPI总线驱动,如果要通过SPI控制外部器件,还需要添加SPI的设备驱动以实现SPI的对外控制逻辑。 在Linux内核的driver/spi目录下有许多外设的设备驱动可以参考,这篇博客主要介绍如何使用其中的spidev,c这个设备驱动来实现对外设的控制。 spidev是
ARM的SPI总结
以前调试过SPI,不过好久没用了,最近工作中有遇到了,使用是发现好多
arm spi 接口概述
原文地址:http://baike.baidu.com/link?url=fc5KkK7PSEwN_k41avHRLH6RgrH1qD9JF8stDmo68QIzHg-2UNrH78hx8vGeGOOiyef5dEU400vxRbCIH5Bfe_ SPI接口 SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口, 它可以使MCU
spi 外设驱动(spi_driver)
spi驱动模型和i2c的类似,都按照主机外设分离来设计的。但我觉得比i2c的要简明好多。 上文配置的spi驱动最外层是platform总线然后是spi总线然后是字符设备。 spi驱动模型分为 spi主控制器驱动,对应结构体spi_master-spi_s3c24xx.c。控制怎么发。 spi外设驱动,对应结构体spi_driver-----spidev.c。实现与用户的接口。 *****
linux spi驱动与应用调用流程
linux spi驱动与应用调度流程 一. 驱动注册流程 1. static int nuc970_spi1_probe(struct platform_device *pdev) 2. err = spi_bitbang_start(&hw->bitbang); 3. INIT_WORK(&bitbang->work, bitbang_work); //初始化工作队列 4.