如何使用 C/C++ 获得对特定内存地址的 R/W 访问
How would I get R/W access to a specific memory address using C/C++
所以考虑到我将如何制作自己的硬件/驱动程序,我正在使用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 参数是您希望使用的任何虚拟地址)。
相关文章:
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- CUDA:统一内存和指针地址的更改
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 使用内存地址访问结构的属性值
- 如何读取特定地址的进程内存?
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- 如果 const 不分配内存,为什么我可以获取 const 的地址?
- 将布局映射到内存地址
- 为什么同一个变量的内存地址不同?
- LLVM 传递以在特定地址分配内存
- 无法将内存地址转换为值
- 是否可以仅通过将分配的指针地址存储在C++中来分析内存?
- 给定特定内存地址的数组的动态内存分配
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 我有一个线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)错误.我认为这是由于内存管理不好.我可以
- 获取 R 数据帧的内存地址
- 如何配置bazel以运行地址/内存清理器?
- 存储 std::list 元素的地址;内存
- 确定库的地址内存