Concurrent DMA access on different core.

muhgin
Posts: 5
Joined: Thu Nov 16, 2017 7:33 am

Concurrent DMA access on different core.

Postby muhgin » Thu Nov 16, 2017 7:42 am

Hi,
I have a (noob)question regarding dma.

Say I have sdcard_write_task() and i2s_read_task() running simultaneously on core 0 and 1 respectively. i2s_read_task() getting parallel input using dma, and after each dma descriptor has been served(while waiting for the next one), it will queue the gotten data to sdcard_write_task() to write to sdcard, also using dma.

Question, is it possible to use dma to fetch input using i2s and at the same time write to sdcard?

Sprite
Espressif staff
Espressif staff
Posts: 10650
Joined: Thu Nov 26, 2015 4:08 am

Re: Concurrent DMA access on different core.

Postby Sprite » Thu Nov 16, 2017 4:10 pm

Yes. The DMA engines in the various peripherals are entirely independent. (Also, they're not associated with a core: even one single core can in theory start multiple DMA transfers so they run concurrently).

muhgin
Posts: 5
Joined: Thu Nov 16, 2017 7:33 am

Re: Concurrent DMA access on different core.

Postby muhgin » Mon Nov 20, 2017 1:15 am

Thanks,

I've tried and tested, it works fine as per your reply.

Who is online

Users browsing this forum: Baidu [Spider], Google [Bot], Semrush [Bot] and 1 guest