On Mon, Mar 24, 2008 at 4:13 PM, sandeep lahane <sandeep.lahane@xxxxxxxxx> wrote: > Hello, > > I am debugging an userspace external io type plugin, written for an ARM > based board where the plugin > interacts with DSP directly using shared memory. > > Every time I have to send period_size data to the DSP, I have my own > write/read methods to do so. > > I am having a problem accessing the alsa ring buffer, my transfer function > looks like following. > > > static char * temp; > static snd_pcm_sframes_t alsa_transfer(snd_pcm_ioplug_t *io, > const snd_pcm_channel_area_t *areas, > snd_pcm_uframes_t offset, > snd_pcm_uframes_t size) > { > > ...... > > temp = malloc(period_size); > memcpy(temp, unsigned char *)areas->addr + (areas->first + > areas->step * offset) / 8, period_size); > write_to_dsp(temp, period_size); > ....... > } > > All the book keeping is done properly, the first chunk of data is sent > properly to DSP and pointer() returns correct value, > next time when transfer is called, the memcpy gives segfault. ALSA buffer > is > an interleaved buffer and I am not using mmap > mode. Any idea what might be wrong? > > When I do something like this: > memcpy(temp, "test data test data", period_size); > the data is sent properly to DSP, but alsa buffer data is not getting > accessed properly. > > > > > > > Regards, > Sandeep. > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@xxxxxxxxxxxxxxxx > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel > temp is actually malloc'd in hw_params and freed properly, so please ignore the details like whether it is freed etc or not. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel