嵌入式开发者社区

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

作者: 小石    时间: 2017-3-6 10:34
标题: EDMA3控制器 影子区域问题
在OMAPL138  DSP核中实现EMIF数据传输 ,通过EDMA控制,因为传输的数据量比较大,我将连接和链接都用上了,通过GPIO Bank6 中断触发事件  EDMA通道控制器1的通道16,
, I# F  q6 P" S% b$ x& y9 P3 P使用仿真器仿真的时候,是可以正常传输数据,但是将烧写到NandFlash后启动,传输完成后,就不能产生 完成传输中断,/ b4 A$ F$ [9 b, A1 L1 q. j
百度了以下,我现在的理解是影子区域的问题,在配置寄存器的时候默认配置到了全局区域通道寄存器,按理说应该配置影子区域通道寄存器,
: L* |, z" r1 y. N1 o5 l不知道大家是否有遇到此类问题,如何操作影子区域,给下指点。谢谢了!" b( Y+ ~' z  q- u& Y2 i
3 J$ y  u% R0 L6 Z" J* B  l/ ]
8 \9 Z  W- B, u9 [6 z; J

作者: 小石    时间: 2017-3-6 18:09
纠正下上面的描述:使用仿真器也是进不了 EDMA3传输完成中断。
作者: Lewis    时间: 2017-3-6 23:31
请参考EMIF_AD7606_200K_EDMA例程,这个例程就是GPIO触发EDMA通过EMIFA读取数据的。
作者: 小石    时间: 2017-3-10 10:07
谢谢 @Lewis4 U6 k- W' ^1 J( i4 d  I
我还想请教下,在EMIF_AD7606_200K_EDMA例程当中,4 |3 q9 b- P0 x# J7 R* `' P$ t
                        (unsigned int)(1<<2 | 1<<20 | \
1 N' k: O. J0 M5 O                         (EDMA3_CHA_GPIO_BNKINT5 << EDMA3CC_OPT_TCC_SHIFT)),// Opt# O( y: e! o8 w0 A' v! `4 T
                        (unsigned int)SOC_EMIFA_CS2_ADDR,                                        // 源地址
3 o4 j3 O* T4 V( n4 m* \                        (unsigned short)(MAX_ACOUNT),                                                // aCnt5 Q& O1 l. y7 l# D4 ~* n$ B
                        (unsigned short)(MAX_BCOUNT),                                                // bCnt" j+ U( ?! M- Z4 H( h2 J
                        (unsigned int) rcv_buffer1,                                                // 目标地址0 x, W! Y, d6 k$ r3 o
                        (short) (MAX_ACOUNT),                                                                // 源 bIdx
6 D9 y0 Q* T6 d4 u; H  r5 B                        (short)(MAX_ACOUNT * MAX_CCOUNT),                                        // 目标 bIdx& H5 h2 u; l, I$ o: v* D
                        (unsigned short)(32u * 40u),                                                // 链接地址 这里只是用了低12位/ h8 j! s) ^5 q0 `0 ?+ [4 Q1 ~) J
                        (unsigned short)(MAX_BCOUNT),                                                // bCnt 重装值
, x5 ]" M* V0 H% S# k& ?" n                        (short)(MAX_ACOUNT * MAX_BCOUNT),                                        // 源 cIdx
, `; w9 W: C; i9 ^7 ~                        (short)(MAX_ACOUNT),                                                                // 目标 cIdx
7 Y. e' t1 ^! r3 w4 q5 K, d- J- p                        (unsigned short)MAX_CCOUNT                                                        // cCnt0 V- O  j. W$ m: p- ?9 T' }+ t

9 v4 \& w+ v( \  t- h' P而在数据手册中,
6 X# _( Z8 E9 D8 c! j) E[attach]2053[/attach]
- M2 g% G1 p+ p: V数据手册将Link 设置为了4800h,  也就是 0x4000 | (64u * 32u),
/ s6 u. h' z5 U! r- B  ?请问下,是不是,对于EDMA3控制器,只是获取低12位的值呢?+ g& G: F. e# M

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




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