UAC2: Crash / exceptions in decouple()

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
User avatar
Experienced Member
Posts: 82
Joined: Thu Apr 04, 2013 10:14 pm

UAC2: Crash / exceptions in decouple()

Post by Caleb »

The UAC2 software reference project version 6.15.2 is about 3 years old and seems very stable. I've used it for the basis of 4 products with good success. I was a bit surprised to recently encounter a problems in decouple() on a new (first time X200-based) product.
For a project with NUM_USB_CHAN_IN == 0 there is remains a good bit of code that is not excluded by the direcitve:
#if (NUM_USB_CHAN_IN==0)
I've typicall ignored the fact that some aud_to_host fifo & pointer declarations and configuration code remain in the compiled code because it all seemed to work.

But in for my current project I've encountered occasional problems, apparently during sample-rate changes. While playing audio files, overnight looping a playlist that consists of 1 file for each sample rate, sometimes there is a failure that requires re-boot to recover. Then, while running from debug, I caught a couple of cases of exception raised in decouple.
The first exception appeared to be a bounds-check, reading past the end of the OUT fifo.
The second was in SetupZerosSendBuffer - I think that executin was blocked - can't remember where.

Q1; Are these know issues?
Q2: Is there any problem with just removing all code in decouple() and handle_audio_request() that is related to IN fifo configuratin and processing?

During sample-rate changes, depending on which OS, there can be a flurry of E0 transactions and I think maybe OS-dependent timeout for responding to requests such as sample-rate, volume changes.
thanks, Caleb