I've attached the I2S driver. On a bad board, I need to disable the last line, which then keeps it from running.
I still can't figure out why an older version of FreeRTOS wouldn't run, but a newer one would. I ran it with minimal tasks, and with no devices, or off chip interfaces... I even tried to run code from another project (we use that chip and code base in a lot of production devices), it hard faulted there as well.
Even with I2S turned off, I still think there's occasional hard faults - maybe every ten or twenty minutes. I need to investigate that more.
Debugging hard faults on a CM0 is a real pain, but I can provide whatever data you want.
Note, I do see some problems on ZSD20 331A parts, but never on any made in 2019 or 2018.