2014-02-18 12:39 AM
Hello,
I have made a 'two-in-one' device using an USB interface association descriptor: a generic HID, and a streaming audio device. Everything is working as expected, but the device is unstable. When fetching data from both interfaces in a loop, after a while (sometimes seconds, sometimes minutes or hours) it will crash (hard fault). I have already checked the obvious (NVIC interrupt priorities, disabling all but the essential interrupts). Are there any places where I should add additional mutexes because of the use of USB IAD? USB firmware library is v3.3.0. Thanks!2014-02-18 01:12 AM
Hi
There is a hard fault register in the ARM core. Please look in the ARM core 'Generic Users Guide' (available from ARM) for details of the register and the bit field meanings. A common cause of Hard Faults is stack corruption eg stack too small. Some OS or debuggers have facilities to check stack high tides.