试图通过/dev/ mems访问超过4000字节的大小时出现总线错误



Python/dev/mem应用程序问题我们的项目是通过套接字应用程序访问BRAM。我正试图通过python/dev/mem文件读写BRAM。当我试图访问超过4000字节的大小时,我得到总线错误。而且我也没有得到适当的API来将数据写入BRAM。

我期待一个适当的/dev/mem应用程序执行读写操作到BRAM

我的python代码如下图

所示从BRAM读取数据

base_addr = raddr
virt_base = base_addr & ~(mmap.PAGESIZE - 1)
virt_offset = base_addr - virt_base
length = size
mmap_file = os.open('/dev/mem', os.O_RDWR | os.O_SYNC)
mem = mmap.mmap(mmap_file, length + virt_offset, 
mmap.MAP_SHARED, mmap.PROT_READ | 
mmap.PROT_WRITE, offset=virt_base)
rdbuf = np.frombuffer(mem, np.uint32, length >> 2, virt_offset)

Write Data to BRAM

base_addr = 0xa0000000
virt_base = base_addr & ~(mmap.PAGESIZE - 1)
virt_offset = base_addr - virt_base
length = size
mmap_file = os.open('/dev/mem', os.O_RDWR | os.O_SYNC)
mem = mmap.mmap(mmap_file, length + virt_offset, 
mmap.MAP_SHARED, mmap.PROT_READ | 
mmap.PROT_WRITE, offset=virt_base)
array = np.frombuffer(mem, np.uint32, length >> 2, virt_offset)
array[0:length] = data

问候,Ram

很高兴地通知我,当使用python/dev/mem应用程序访问超过4000字节的数据时,我已经解决了总线错误。首先,我们需要在DTS中保留完整的BRAM,并使BRAM处于禁用状态。

相关内容

最新更新