eDMA Flexbus bus error

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

eDMA Flexbus bus error

Jump to solution
608 Views
martindusek
Contributor V

Hi,

this is my DMA configuration for reading from flexbus (external SRAM) on K22:

DMA0->TCD[0].ATTR = DMA_ATTR_DSIZE(1) | DMA_ATTR_SSIZE(1);
DMA0->TCD[0].DOFF = 2;
DMA0->TCD[0].SOFF = 2;
DMA0->TCD[0].NBYTES_MLNO = 32;
DMA0->TCD[0].CITER_ELINKNO = 1;
DMA0->TCD[0].SADDR = flexbusAddress; // 0x08000000
DMA0->TCD[0].DADDR = mybuffer;
DMA0->TCD[0].CSR = DMA_CSR_START_MASK | DMA_CSR_INTMAJOR_MASK;

flexbusAddress variable is address pointing to flexbus memory space. I can read from flexbus using cpu anytime:

int *flex = flexbusAddress;
mybuffer[0] = flex[0];

However, as soon as I launch DMA transfer I immediatelly get Source Bus Error in DMA0->ES register set.

Can you please help me with this issue?

Labels (1)
0 Kudos
1 Solution
402 Views
martindusek
Contributor V

Resolved. RM states that 0x0800_0000–0x0FFF_FFFF address range is accessible only by core. I moved my SRAM to 0x60000000, which is accessible by all masters.

View solution in original post

0 Kudos
1 Reply
403 Views
martindusek
Contributor V

Resolved. RM states that 0x0800_0000–0x0FFF_FFFF address range is accessible only by core. I moved my SRAM to 0x60000000, which is accessible by all masters.

0 Kudos