【问题标题】:Is mmap working with SPI device?mmap 是否与 SPI 设备一起使用?
【发布时间】:2014-02-24 19:31:23
【问题描述】:

我想使用 SPI 接口来读取和写入外部 FPGA 中的寄存器(所以我称之为 SPI 设备)。我知道 Linux 内核有 spi 驱动程序。那么我可以使用mmap吗?如果是,我应该通过代码中的“/sys/bus/spi/devices/DEVICE_NAME”打开设备文件吗?

我注意到当我 cd 到“/sys/bus/spi/devices/SPI_DEVICE_NAME”时,路径自动更改为“/sys/devices/soc.0/CORE_NAME/SOME_NUMBER/SPI_DEVICE_NAME”。谁能为我解释一下?

提前致谢!

海蒂

【问题讨论】:

    标签: linux mmap spi


    【解决方案1】:

    SPI严格来说是一个面向命令和流的协议。 Linux 没有任何工具可以通过它以随机方式访问可用数据。甚至是顺序方式,因为它没有任何 SPI 设备驱动程序;所有操作都必须由用户软件执行。

    【讨论】:

    • 我确实在 /drivers/spi 中找到了驱动程序。那是什么?
    • 这是SPI 接口的驱动程序。
    • 好的。我的目的是通过 SPI 接口读写外部 FPGA 中的寄存器。为了这个简单的目的,我必须编写一个驱动程序吗?我以为我可以通过 /sys/bus/spi/devices/... 和 mmap 打开文件。我为 PCIe 接口(mmap /sys/bus/pci/devices/...)做了同样的事情来读取和写入 FPGA 中的寄存器 - 它工作正常。
    • PCIe 寄存器是面向块的。 SPI是面向流的。您不会尝试 mmap 标准输入或标准输出,对吗?
    • 好的。那我需要写内核驱动还是用户空间驱动呢?我是 linux 驱动程序的初学者,所以想选择一种简单的方式开始。如果用户空间驱动程序可以工作,我应该使用 ioctl 来满足读/写需求吗?
    猜你喜欢
    • 2011-09-24
    • 2017-06-14
    • 1970-01-01
    • 2019-11-05
    • 2013-11-06
    • 2012-05-28
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多