我有一个在 NXP 的 Imx6 SoC 上运行的嵌入式 linux 项目,我正在尝试使用它的 SPI。由于没有同时支持主从模式的驱动程序,我首先尝试从用户空间自己处理。我使用 mmap 访问 SPI 的寄存器,但是当我尝试使用 mmap 读/写它们时,系统挂起,我必须重新启动。然后我在自定义 spi-imx 驱动程序中做了同样的事情,但我必须等待驱动程序到达函数 spi_imx_transfer 才能被允许访问寄存器。
我对 linux 设备管理很陌生,所以想知道为什么用同样的方法我可以访问其他设备的寄存器,但不能访问 SPI 的寄存器。 当我尝试读取这些寄存器时,为什么 linux 会挂起? 是否可以从用户空间或更早的设备驱动程序中读取或写入它们?
有没有一种方法可以允许(或解锁?)访问寄存器?
任何的建议都受欢迎。