【发布时间】:2017-07-20 18:26:45
【问题描述】:
我正在使用 Altera cyclone 5 fpga-soc 进行嵌入式系统项目。 在真实处理器(ARM)上,我将使用 Linux,FPGA 通信的脚本将在 Python 2 中实现。
我需要一个内存映射来通过/dev/mem 向 FPGA 发送数据和从 FPGA 接收数据。
为了开发脚本,我在虚拟机上使用 Lubuntu 系统。下面是我在 Lubuntu VM 上的 PyCharm 中测试的代码:
def open(self):
file = os.open("/dev/mem", os.O_RDWR | os.O_SYNC)
self.map = mmap.mmap(file,
self.CONST_mapLength,
mmap.MAP_SHARED,
prot = mmap.PROT_READ | mmap.PROT_WRITE,
offset = self.CONST_offset)
return
我的问题是我无法打开 \dev\mem。脚本以以下文本结尾:
file = os.open("/dev/mem", os.O_RDWR | os.O_SYNC)
OSError: [Errno 13] Permission denied: '/dev/mem'
Process finished with exit code 1
问题是什么,我该如何解决?
【问题讨论】:
-
你必须是
root。 -
您有正确的权限吗?通过手动打开或修改文件来检查它,然后在必要时使用 chmod 进行更改
-
您不应更改 /dev 中任何内容的权限或所有权,因为它们将受内核控制。
-
@PRMoureu 这是个坏建议,
/dev/mem不是普通文件 -
@OferSadan 好的,谢谢,我的错...我让评论作为不做的事情。
标签: python linux arm memory-mapped-files