Tool/software: Code Composer Studio
I'm trying to run an audio application from SPI flash on the EZDSPC5535 board. The application uses 4 DMA channels to transmit and receive data over I2S. Each DMA channel is configured in a scheme with two buffers (Ping-Pong). When the playback of the ping buffer is completed, the DMA controller generates an interrupt and the program writes new data to the ping buffer, while the pong buffer is played.
Everything works well when I load the program through a debugger, but when I boot from spi flash, DMA interrupts do not occur (as if they were disabled), so no sound is played. However all initialization was successful without errors.
I have already found out that a frequent problem when booting from SPI flash is the lack of initial steps defined in the gel file. So I deleted everything from the gel file, leaving the empty event handlers. But program still works when I load it through the debugger.
However, I found a strange thing: if you connect a board to start the program from the SPI flash (DMA does not work at that moment), then Launch Selected Configuration (even with empty event handlers), then Connect Target and Resume the program execution, then the DMA interrupts start working.
I'm wondering what happens when you press Connect Target that affects the generation of DMA interrupts