gpt4 book ai didi

与Linux中的内存映射设备通信

转载 作者:太空狗 更新时间:2023-10-29 12:00:38 25 4
gpt4 key购买 nike

我有一个内存映射设备,我需要与它通信。我的老板告诉我可以通过 /dev/mem 来实现。我在网上查了一下,没有找到任何相关的东西。有可能这样做还是我的老板错了?

假设您拥有 super 用户权限。

感谢任何帮助。

最佳答案

您在地址 MMIO_ADDR 处获得了一个内存映射设备,它占用了 MMIO_LEN 字节。您需要切换设备地址空间中的第 123 个字节。这可能看起来像这样:

#define MMIO_ADDR 0xDEAD0000
#define MMIO_LEN 0x400

// open a handle into physical memory, requires root
int memfd = open("/dev/mem", O_RDWR);
// map the range [MMIO_ADDR, MMIO_ADDR+MMIO_LEN] into your virtual address space
unsigned char* shmem = mmap(0, MMIO_LEN, PROT_WRITE | PROT_READ, MAP_SHARED, memfd, MMIO_ADDR);

// do your deed
unsigned char *magic_toggle_byte = &shmem[123];
*magic_toggle_byte = !*magic_toggle_byte;

关于与Linux中的内存映射设备通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com