嵌入式开发者社区

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

作者: 小石    时间: 2017-3-6 10:34
标题: EDMA3控制器 影子区域问题
在OMAPL138  DSP核中实现EMIF数据传输 ,通过EDMA控制,因为传输的数据量比较大,我将连接和链接都用上了,通过GPIO Bank6 中断触发事件  EDMA通道控制器1的通道16,
8 \9 Q+ l' n" e$ G使用仿真器仿真的时候,是可以正常传输数据,但是将烧写到NandFlash后启动,传输完成后,就不能产生 完成传输中断,9 v% E4 ]7 N/ U2 s1 W& ^: O  E: L! ^
百度了以下,我现在的理解是影子区域的问题,在配置寄存器的时候默认配置到了全局区域通道寄存器,按理说应该配置影子区域通道寄存器,1 |- J, i' O% n+ w( M
不知道大家是否有遇到此类问题,如何操作影子区域,给下指点。谢谢了!
* z! ~( X* |' p, W) C
. ~7 h6 p* J' @$ }9 G; C7 ^
. U% F4 x# W/ m" l* L" [
作者: 小石    时间: 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
$ a- x9 |8 v5 w$ |6 I( ]; h' `我还想请教下,在EMIF_AD7606_200K_EDMA例程当中,
  ]! B1 w4 m7 Y: V* l" N. R1 r                        (unsigned int)(1<<2 | 1<<20 | \0 B! t4 s7 L4 c$ L1 H: e$ z
                         (EDMA3_CHA_GPIO_BNKINT5 << EDMA3CC_OPT_TCC_SHIFT)),// Opt1 b! Z. d% t& u3 A1 U( j$ V
                        (unsigned int)SOC_EMIFA_CS2_ADDR,                                        // 源地址
: Z: L  G! A4 \3 E  D7 N                        (unsigned short)(MAX_ACOUNT),                                                // aCnt
6 }$ h) H. B, b) }5 O                        (unsigned short)(MAX_BCOUNT),                                                // bCnt( s0 E$ E5 M* Y7 @; N
                        (unsigned int) rcv_buffer1,                                                // 目标地址* L$ ^9 i1 F* ^& Q/ R$ V4 ^$ a
                        (short) (MAX_ACOUNT),                                                                // 源 bIdx
2 N* s5 b4 b/ m+ ^! `3 |$ q: C# ?6 S                        (short)(MAX_ACOUNT * MAX_CCOUNT),                                        // 目标 bIdx
. J4 I' w+ l4 k2 e9 I% L) m$ t                        (unsigned short)(32u * 40u),                                                // 链接地址 这里只是用了低12位* c* Q, s4 k- ]' ~$ B0 N
                        (unsigned short)(MAX_BCOUNT),                                                // bCnt 重装值
2 S0 c4 k% C2 X; v- e6 i6 R                        (short)(MAX_ACOUNT * MAX_BCOUNT),                                        // 源 cIdx
4 I/ R4 G; A* v                        (short)(MAX_ACOUNT),                                                                // 目标 cIdx
+ G5 B2 {3 ]. G3 m                        (unsigned short)MAX_CCOUNT                                                        // cCnt
- c# L3 f- I9 \
0 T" i- }* \  q  Q2 V/ V而在数据手册中,
% E6 M" o. m! D) e% q$ c[attach]2053[/attach]
- {) |( Y  K, V6 v! W数据手册将Link 设置为了4800h,  也就是 0x4000 | (64u * 32u),- R- o0 L7 K" F4 G! C& n
请问下,是不是,对于EDMA3控制器,只是获取低12位的值呢?; w3 E* n# k# _! C5 a4 u

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




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