eDMA Flexbus bus error

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

eDMA Flexbus bus error

ソリューションへジャンプ
1,164件の閲覧回数
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?

ラベル(1)
0 件の賞賛
返信
1 解決策
958件の閲覧回数
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 件の賞賛
返信
1 返信
959件の閲覧回数
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 件の賞賛
返信