嵌入式开发者社区

标题: EDMA3控制器 影子区域问题 [打印本页]

作者: 小石    时间: 2017-3-6 10:34
标题: EDMA3控制器 影子区域问题
在OMAPL138  DSP核中实现EMIF数据传输 ,通过EDMA控制,因为传输的数据量比较大,我将连接和链接都用上了,通过GPIO Bank6 中断触发事件  EDMA通道控制器1的通道16,# l, Q0 U/ Y* y4 o) l: R0 [
使用仿真器仿真的时候,是可以正常传输数据,但是将烧写到NandFlash后启动,传输完成后,就不能产生 完成传输中断,
2 n9 W  n" i) ^+ ?1 G) C百度了以下,我现在的理解是影子区域的问题,在配置寄存器的时候默认配置到了全局区域通道寄存器,按理说应该配置影子区域通道寄存器,: M/ V+ u" `) J/ c
不知道大家是否有遇到此类问题,如何操作影子区域,给下指点。谢谢了!' U" |' S8 Y9 m& ~0 W9 R# j
) l; E4 p2 i( k3 ^3 h% h6 g

- B: h6 B6 |8 C& Y0 k* u9 m5 q
作者: 小石    时间: 2017-3-6 18:09
纠正下上面的描述:使用仿真器也是进不了 EDMA3传输完成中断。
作者: Lewis    时间: 2017-3-6 23:31
请参考EMIF_AD7606_200K_EDMA例程,这个例程就是GPIO触发EDMA通过EMIFA读取数据的。
作者: 小石    时间: 2017-3-10 10:07
谢谢 @Lewis  k. D7 i( P+ T, X! n/ Q
我还想请教下,在EMIF_AD7606_200K_EDMA例程当中,
0 e+ ]8 k" `9 L) U# `8 h* ^  \                        (unsigned int)(1<<2 | 1<<20 | \* |* Q& w7 K. R$ t( d" `. B
                         (EDMA3_CHA_GPIO_BNKINT5 << EDMA3CC_OPT_TCC_SHIFT)),// Opt, [( ~- k( }- v/ Z7 f" K
                        (unsigned int)SOC_EMIFA_CS2_ADDR,                                        // 源地址
7 R4 V* k+ @( ~. Z7 e  w) s                        (unsigned short)(MAX_ACOUNT),                                                // aCnt
; T$ }: Y- s. _) C4 y' b& b                        (unsigned short)(MAX_BCOUNT),                                                // bCnt$ w# G" \( }1 k  l
                        (unsigned int) rcv_buffer1,                                                // 目标地址
  ]& @- Y. y7 r9 H8 b. V1 u4 k5 Y                        (short) (MAX_ACOUNT),                                                                // 源 bIdx0 r7 r. p& |7 |! X$ \; D5 v
                        (short)(MAX_ACOUNT * MAX_CCOUNT),                                        // 目标 bIdx0 Q7 c( u. j6 a; ^
                        (unsigned short)(32u * 40u),                                                // 链接地址 这里只是用了低12位
- g( Q6 X% B* _2 R  g, A                        (unsigned short)(MAX_BCOUNT),                                                // bCnt 重装值5 P2 f. c5 O8 S
                        (short)(MAX_ACOUNT * MAX_BCOUNT),                                        // 源 cIdx* f1 L7 s1 L7 X& i  M+ w
                        (short)(MAX_ACOUNT),                                                                // 目标 cIdx
! J# k4 E4 x1 q) v& \' Y! I; q                        (unsigned short)MAX_CCOUNT                                                        // cCnt0 n$ b. ^. K  o+ g8 N# ~$ `, d
+ b* w0 @5 k" _
而在数据手册中,
8 F. Q* _- M0 u[attach]2053[/attach]
2 Q/ i5 R5 J$ V0 H, s数据手册将Link 设置为了4800h,  也就是 0x4000 | (64u * 32u),3 b; ?: U& }+ s3 t2 y; d  w- I- m
请问下,是不是,对于EDMA3控制器,只是获取低12位的值呢?% _! L& d, J! c: i

作者: Lewis    时间: 2017-3-20 16:25
link是param的偏移地址,并不是指用到低12bit




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4