写入dev/mem/的内存映射在硬件邮箱中出现两次

2024-09-28 21:54:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用内存映射dev/mem/将消息写入硬件邮箱,但我发送的所有内容都会被发送两次。所以在下面的代码中,在向MBOX发送一个1之后,邮箱深度表示深度为2。 当我从邮箱里读的时候,它有两个。知道为什么会这样吗?在

with open("/dev/mem", "r+b") as mem_fd:
    addr_p = mmap.mmap(mem_fd.fileno(), mem_size[UPROC_PIF_AREA], offset = mem_offsets[PROC_PIF_AREA])

#Sending the message header to register mbox_xt first
print "Sending message header"

packed_mbox_status = addr_p[MBOX_STATUS:MBOX_STATUS + 4]
mbox_to_microp_depth = struct.unpack("BBBB", packed_mbox_status)
print "mbox_to_microp_depth : " + str(mbox_to_microp_depth)


addr_p[MBOX_XT:MBOX_XT+4] = struct.pack("<L", 1)


packed_mbox_status = addr_p[MBOX_STATUS:MBOX_STATUS + 4]
mbox_to_microp_depth = struct.unpack("BBBB", packed_mbox_status)
print "mbox_to_microp_depth : " + str(mbox_to_microp_depth)

Tags: todevstatusmemstructaddr邮箱print