c - 如何读取SPI总线上连接的ROM的第0地址?

标签 c embedded-linux 8051

我的master是ARM9处理器。

我想读取连接在 SPI 总线上的 8051 内部 ROM 的第 0 个地址?

我可以使用read()系统调用来做到这一点吗?因为我想在用户空间中使用它,我可以使用 mmap() 系统调用吗?

最佳答案

read() 系统调用将调用您之前使用 open() 系统调用打开的设备驱动程序的读取例程;如果您有一个可以访问您的 8051 的驱动程序,那么您可以根据它的实现方式来使用它。

如果您没有驱动程序,并且您有权将物理内存映射到内存空间,并且知道要配置的正确寄存器位置,则可以选择使用 mmap() (如果需要),读取和写入您的 SPI 设备。如果您不知道这些寄存器位置(或通信协议(protocol)),则需要阅读特定的 CPU 手册(不是通用的 ARM9 手册,而是针对您的制造商/型号的手册)以获得您需要的信息。

您还需要了解 8051 使用的通信协议(protocol)来向其发送适当的 SPI 命令。

关于c - 如何读取SPI总线上连接的ROM的第0地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932637/

相关文章:

python - 使用 C/API 和 C++ 类编写 Python 模块

linux - Yocto 自定义层在 mkfs.ext4 之后在 do_rootfs 上运行 Tune2fs

c - I2C 协议(protocol)如何工作

c - 中断处理程序是否必须是可重入的?

c - 使用静态函数的正确方法是什么?

c - 连续调用 recvfrom() 丢失数据?

c - 嵌入式 Linux(32 位)的 2038 年解决方案?

shell - 如何在运行 Linux 的 Dragonboard 410c 上切换板载 LED

c - 8051F312微 Controller

xcode - 设置 Xcode 以使用外部编译器