嵌入式开发者社区

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

作者: 小石    时间: 2017-3-6 10:34
标题: EDMA3控制器 影子区域问题
在OMAPL138  DSP核中实现EMIF数据传输 ,通过EDMA控制,因为传输的数据量比较大,我将连接和链接都用上了,通过GPIO Bank6 中断触发事件  EDMA通道控制器1的通道16," j' a: y% J) }' |$ \8 M) N- R
使用仿真器仿真的时候,是可以正常传输数据,但是将烧写到NandFlash后启动,传输完成后,就不能产生 完成传输中断,
; O; D8 a) o$ o7 {2 m# Q$ x百度了以下,我现在的理解是影子区域的问题,在配置寄存器的时候默认配置到了全局区域通道寄存器,按理说应该配置影子区域通道寄存器,- Y3 d7 v( i$ |0 N
不知道大家是否有遇到此类问题,如何操作影子区域,给下指点。谢谢了!+ q5 u5 z9 D9 l  ^! `

' _  V8 U( \3 l9 B, K% l0 I8 e) ?. |- c/ q% W2 r" r3 [1 w  T* y  v

作者: 小石    时间: 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' H2 V" [) p) e& ?
我还想请教下,在EMIF_AD7606_200K_EDMA例程当中,# E4 ?! n5 n: c( ^4 ]
                        (unsigned int)(1<<2 | 1<<20 | \
& N& B5 U: |+ k; j4 X1 e1 W* T5 F                         (EDMA3_CHA_GPIO_BNKINT5 << EDMA3CC_OPT_TCC_SHIFT)),// Opt, s/ T3 ~& N9 f
                        (unsigned int)SOC_EMIFA_CS2_ADDR,                                        // 源地址
7 j' X$ M+ H( x( u                        (unsigned short)(MAX_ACOUNT),                                                // aCnt6 l# {3 b* E/ @9 e' b! n9 n
                        (unsigned short)(MAX_BCOUNT),                                                // bCnt
* v' G3 v0 E) t- b$ Y                        (unsigned int) rcv_buffer1,                                                // 目标地址
* w8 l& L. g) }  u) u- N, G1 c+ T                        (short) (MAX_ACOUNT),                                                                // 源 bIdx5 Z# l% R8 C7 A+ B/ D  J
                        (short)(MAX_ACOUNT * MAX_CCOUNT),                                        // 目标 bIdx
0 N, [# `8 o0 \& z6 B! C                        (unsigned short)(32u * 40u),                                                // 链接地址 这里只是用了低12位2 q; _# @! b) v' a2 |: P( ?
                        (unsigned short)(MAX_BCOUNT),                                                // bCnt 重装值
2 f3 Q- e/ D  z0 B0 x, C: n! z1 K                        (short)(MAX_ACOUNT * MAX_BCOUNT),                                        // 源 cIdx
0 z5 Y  |+ {+ X% ], O2 c                        (short)(MAX_ACOUNT),                                                                // 目标 cIdx5 J  |* p6 \: f1 T7 k" }2 Y
                        (unsigned short)MAX_CCOUNT                                                        // cCnt; ^! k* \$ I, i/ `1 K& T  f
2 ~6 @0 l( F, @8 N% s7 g
而在数据手册中,
6 `7 Y) N1 }9 Z' {/ c) v[attach]2053[/attach]& i& W: j  W/ t" ~
数据手册将Link 设置为了4800h,  也就是 0x4000 | (64u * 32u),
8 k: z! \: u& z* ?请问下,是不是,对于EDMA3控制器,只是获取低12位的值呢?
6 v8 ?! n4 |: X/ N
作者: Lewis    时间: 2017-3-20 16:25
link是param的偏移地址,并不是指用到低12bit




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