![允许 /dev/mem 的部分内存映射](https://linux22.com/image/152743/%E5%85%81%E8%AE%B8%20%2Fdev%2Fmem%20%E7%9A%84%E9%83%A8%E5%88%86%E5%86%85%E5%AD%98%E6%98%A0%E5%B0%84.png)
我有一个 SoC-FPGA(DE0-nano-soc),其中在单个芯片上包含一个 ARM-Cortex-A9 cpu 和一个 Cyclone V FPGA。 CPU 可以访问 1GB DDR3 内存,但 FPGA 也可以访问该内存,以便它们可以共享数据。
现在我已经使用引导参数将 Linux 配置为仅看到 900M 的总 RAM mem=900M
。这样我就有了一些 Linux 不接触的 RAM,我可以用它来与 FPGA 通信。我想使用 写入 RAM 的那部分/dev/mem
。当我内存映射适当的地址时,我收到权限被拒绝错误,我猜测这是因为我的内核已CONFIG_STRICT_DEVMEM
设置。
现在我真的不想取消这个设置,因为我真的只需要写入 linux 不使用的地址。有没有办法告诉Linux内核可以写入该特定部分,但正常内存仍然有限制?