我有一个C函数,它可以通过打开设备描述符(nf10)将其完全读/写到硬件寄存器中。我正在尝试使用Python实现同样的功能。我能读寄存器,但不能写寄存器。为什么我不能写作?有没有更好的方法在硬件中读/写寄存器?在
相关Python代码:#! /usr/bin/env python
import os
from fcntl import *
from struct import *
SIOCDEVPRIVATE = 35312
NF10_IOCTL_CMD_READ_STAT = SIOCDEVPRIVATE + 0
NF10_IOCTL_CMD_WRITE_REG = SIOCDEVPRIVATE + 1
NF10_IOCTL_CMD_READ_REG = SIOCDEVPRIVATE + 2
def rdaxi(addr):
f = open("/dev/nf10", "r+")
arg = pack("q", int(addr, 16))
value = ioctl(f, NF10_IOCTL_CMD_READ_REG, arg)
value = unpack("q", value)
value = value[0]
value = hex(value & int("0xffffffff", 16))
f.close()
return value
def wraxi(addr, value):
f = open("/dev/nf10", "r+")
arg = (int(addr, 16) << 32) + int(value, 16)
arg = pack("q", arg)
ioctl(f, NF10_IOCTL_CMD_WRITE_REG, arg)
f.close()
相关C代码
^{pr2}$
}