- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个在 NXP 的 Imx6 SoC 上运行的嵌入式 Linux 项目,我正在尝试使用它的 SPI。由于没有同时支持master和slave模式的驱动,我首先尝试从用户空间自己处理。我使用 mmap 访问 SPI 的寄存器,但是当我尝试使用 mmap 读取/写入它们时,系统挂起并且我必须重新启动。然后我在自定义 spi-imx 驱动程序中做了同样的事情,但我必须等待驱动程序到达函数 spi_imx_transfer 才能被允许访问寄存器。
我对 linux 设备管理很陌生,所以想知道为什么用同样的方法我可以访问其他设备的寄存器,但不能访问 SPI 的寄存器。为什么当我尝试读取这些寄存器时 linux 挂起?是否可以从用户空间或更早的设备驱动程序中读取或写入它们?
是否有允许(或解锁?)访问寄存器的方法?
欢迎任何建议。
最佳答案
这不是 Linux 问题:ECSPI 时钟被禁用。因此,在访问 SPI 的寄存器之前,我只需将正确的寄存器设置为 1(使用 mmap)。
关于c - 在 Imx6 上读取 SPI 寄存器时 linux 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42157056/
我正在使用 ARM iMX6 处理器的嵌入式 Linux 设备上进行开发。主要目的是从外部源读取传入的串行流。 由于串行流的非典型性质,我在 Linux serial driver 方面遇到了一些障碍
尝试获取一个可工作的 directfb,用于基于运行 Linux 2.6.35.3(由 Freescale 提供)的 i.MX53 处理器(ARM Cortex-A8 内核)的嵌入式系统。 我在 i6
我试图了解嵌入式 Linux 原理,但无法在 u-boot 输出中找出地址。 如何找到U-boot的起始地址? 例如,我有基于 i.MX6 四核处理器的 MX6-SabreSD 板,我从 U-Boot
我有一个在 imx CPU 上运行的自定义构建 linux 2.6。 CAN 与外部节点的通信非常有效,但是当在终端中使用“candump can0”时(当我使用 usb-CAN 加密狗在我的主机上运
我是一名优秀的程序员,十分优秀!