【问题标题】:how to use ioremap() api from user space to read and write registers on SPI Flash memory in uClinux如何使用用户空间的ioremap()api在uClinux中读取和写入SPI闪存上的寄存器
【发布时间】:2014-01-17 13:07:03
【问题描述】:

我正在编写一个示例应用程序,用于读取寄存器并在给定的 SPI 设备地址上写入特定值。

我正在使用altera spi 1.0驱动,注册spi设备时基地址为0xE5002460。

我想使用 ioremap 调用从用户空间读取/写入来自 SPI Flash 的寄存器。

是否有任何代码 sn-p 或任何关于如何使用 ioremap 函数的示例,该函数可以直接从给定的基地址读取寄存器的值,而无需为此编写任何特定的驱动程序?

【问题讨论】:

  • 您的系统是否实际配置为在某种代理本地地址空间中显示远程 SPI 设备的寄存器,它将捕获访问并自动将其转换为 SPI 事务?或者您是否只需要在您的程序中显式生成 SPI 事务以根据其数据表访问闪存设备的这些寄存器?

标签: c linux linux-device-driver uclinux


【解决方案1】:

@Ritesh,ioremap api 在内核空间中用于内存映射设备/模块,用于返回虚拟地址的 ex:SPI 寄存器。此地址只能由 ioread[8|16|32] 和 iowrite[8|16|32] api 用于读取或写入 spi 寄存器。您可以使用 mmap 映射 SPI 寄存器。通过链接mmap slower than ioremap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 2020-05-28
    • 2015-12-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2021-06-17
    • 2018-05-31
    相关资源
    最近更新 更多