您好!
我们在使用dm8148时,发现有些芯片上我们的程序经常出现ringbuffer写失败的问题:
ringbuffer的状态如下:
[RingBuf]
********** RingBuf - 0 Info (378, RingBufferWriterAcquire) ***********
[RingBuf] initDone :TRUE
[RingBuf] base :0x4C4A5B00
[RingBuf] totalSize :10368000
[RingBuf] availSize :10368000
[RingBuf] Writer -> acqPtr[1572864] acqSize[1553280] relPtr[19584] relSize[0]
[RingBuf] Reader -> acqPtr[19584] acqSize[0] relPtr[19584] relSize[8814720]
[RingBuf] Count -> writer [932059, 932059, 932058] reader [932059, 932059, 0]
[host] RingBuf(379, RingBufferWriterAcquire) - Writer: Acquire already done
這里很奇怪,writecancelcount的次数竟然比writereleasecount要少一次,而reader却等于writer。似乎ringbufferwritercancel少了一次调用,但是代码里面确实是调用了。