如何使用 C/C++ 获得对特定内存地址的 R/W 访问

How would I get R/W access to a specific memory address using C/C++

本文关键字:地址 内存 访问 何使用 C++      更新时间:2023-10-16

所以考虑到我将如何制作自己的硬件/驱动程序,我正在使用GPIO,我知道GPIO实际上对所有硬件使用一定范围内的特定内存库,但是我将如何读取和写入这些内存库?

USB 是否以类似的方式工作?

附言我正在使用树莓派。

如果您使用的是 Linux,您还可以使用 Proc interface 与 GPIO 进行通信。例如,如果看到此链接,它将显示如何直接从 shell 提示符读取或写入 GPIO 引脚。

如果您使用的是支持 mmap() 的系统,https://groups.google.com/forum/?fromgroups=#!topic/comp.os.linux.development.apps/2kiUc-dNa3c 讨论使用 mmap() 来执行此操作。总结一下,您的进程将打开/dev/mem 进行读取和写入,并将您的基本物理地址作为偏移量映射到文件中(并且您的 addr 参数是您希望使用的任何虚拟地址)。