0

我在 zedboard 上运行 xillinux(或多或少 ubuntu 12.04)。Zedboard 结合了 arm 和 fpga。

现在已经编写了一个从设备驱动程序(/dev/xillybus_read_32)读取数据的python脚本。

现在我知道我收到的数据是完整且正确的(我使用了一个预先编写的程序,将所有数据存储在一个转储文件中,我将此转储文件拆分为帧并检查内容是否正确(每个帧都包含一个附加项,因此很容易检查)。

现在,当我尝试使用以下 python 脚本从设备驱动程序接收数据时:

#Read data
#Framesize
CONST_FRAMESIZE = (640*480*16)/8
#Info
frame_true = 0
frame_false = 0
#Open file
pipe_in = open("/dev/xillybus_read_32","r")
count = 0
count_false = 0
for z in xrange(1000):
        frame = "frame" + str(count) + ".raw"
        pipe_out = open(frame,"wb")
        for r in xrange(CONST_FRAMESIZE/4):
                value = pipe_in.read(4)
                pipe_out.write(value)

        pipe_out.close()

        #Compare goldendata with frame
        if filecmp.cmp("goldendata",frame):
                frame_true = frame_true + 1
                if count >= 1:
                        os.remove(frame_last)
                frame_last = frame
        else:
                print "frame_true:", frame_true
                pipe_in.close()
                sys.exit()
                #frame_false = frame_false + 1
                #os.remove(frame)
        count = count + 1;

#Close opend file
pipe_in.close()

我收到了所有数据,但有时我得到了 2 次 32 位字。就像它有时会读取两次 32 位字一样。我不会丢失数据,它有时只是读取 32 位数据 2 次。很奇怪。

谢谢

4

0 回答 0