Hi,
I am using a 5502 dsp and have McBSP connected to a PCM bus that is 256 bits, 16 words, 16 frames. I have enabled only TS1-4 of TS0-15 timeslots. Ie, I have a 4 channel PBX implementation. So I have the DMA set up to pack unpack data from the McBSP to 4 contigious 80 word by 4 channel buffers. I have two of these buffers for each receive and transmit. ie the receive and transmit portins are doubled buffered via the DMA. So, for every DMA interrupt, I need to switch the target buffer and then re-enable the DMA.
I got this code working and it works great when I download it from the debugger. I am using the gel sd5502evm.gel to configure my board, then download the code. I have been able to build on this by posting a swi and then running my audio processing PBX software and again all works good.
The problem come in when I take this same code, and copy it through the HPI into internal/external memory. I wrote a secndary booloader which we copy into the 5502 internal memory via the HPI, then hit 0x61/60 with the entry address. This secondary bootloader comes to life, configures external SDRAM, and then copies the app to internal and external memory. When complete, the secondary bootloader jumps to the entry address of the application and then the application starts.
It appears to me that everything works on my system (tasks, semiphores, my console) execpt the PCM DMA I get 6 interrupts, then it appears that interrupts are disabled for the DMA, and a couple of others that I enabled. I do not understand the difference between me downloading via teh HPI and using the debugger. The gel file I use only configures SDRAM.
Any help would be good. I can pass along my c source if necessary.
Robert