Altera_Forum
Honored Contributor
16 years agoSDRAM and Audio problem
I want to write some data in SDRAM with a FOR cicle and connect the audio codec MIC (in) to audio codec spk(out), the audio code segment is ok, the problem is when I add the write sdram function because the program stops, I saw (before running program) that initially some data (probably code) is in sdram memory and I think maybe the write sdram function is changing the program code. Here the question is: Why program data in SDRAM if I configured in SOPC builder reset and exception vector in SRAM ??? What I can do to put the code program on SRAM and not SDRAM.
Here the code : # include "sdram_to_audio.h" long i; alt_u16 cont=0; void write_sdram() { alt_u16 *buffer = (alt_u16 *) 0x00800000; // base addr SDRAM for (i=0; i<=127; i++){ buffer[i]=cont; cont++; } } int main() { volatile int * audio_ptr = (int *) 0x10003040; // audio port long audiobuf[128]; /* used for audio record/playback */ int fifospace;//, leftdata, rightdata; int buffer_index = 0; write_sdram(); while (1) { fifospace = *(audio_ptr+1); // read the audio port fifospace register if ((fifospace & 0x000000FF) > 96) { audiobuf[buffer_index] = *(audio_ptr + 3); // read right channel only buffer_index++; } fifospace = *(audio_ptr+1); // read the audio port fifospace register if (((fifospace & 0x00ff0000)>>16) > 96) { buffer_index--; //Write to both channels *(audio_ptr + 2) = audiobuf[buffer_index]; *(audio_ptr + 3) = audiobuf[buffer_index]; } } }