I am playing with the Helix Mp3-Decoder software. it works good on UC3B0256.
My problem: I have several DMA-channels that are transfering memory:
UART RX+TX for CPU-Communication
SSC TX for playback
SPI RX+TX for SD-Card
I am getting errors now. Sometimes a peripherial dma channel looses some bytes. (Seems to be an bufferoverflow in the hardware due to slow memory access) This is a sure fact.
I if change the number of a dma-chanel the erronus behavior changes to that one that has the lower priority then.
I can assign higher priority channels (0 and 1) to SSC and the playback works perfect and the UART-communication fails periodically.. If i assign high prioirity channels to UART the UART works perfect and the SSC fails..
I am sure this behavior is due to bandwidthlimitations on the HSB bridge.
I am absolutely sure this problem can be fixed with some settings on the HMATRIX module.
I have no idea how to optimize the settings.
It is mandatory that DMA works perfect, but due to bandwith needs of mp3-decoding the Ram also needs to be verry fast.. and sinc program is executed from flash.. the flash needs also to be fast ;-)
everything needs to be fast :-D
But DMA needs to be the fastest.
I have no code for HMATRIX since its a magic for me..
if someone could support me with this, i would be really thankfull..