嵌入式开发者社区

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

作者: 小石    时间: 2017-3-6 10:34
标题: EDMA3控制器 影子区域问题
在OMAPL138  DSP核中实现EMIF数据传输 ,通过EDMA控制,因为传输的数据量比较大,我将连接和链接都用上了,通过GPIO Bank6 中断触发事件  EDMA通道控制器1的通道16,
  f: [$ B$ E2 ~- i使用仿真器仿真的时候,是可以正常传输数据,但是将烧写到NandFlash后启动,传输完成后,就不能产生 完成传输中断,0 \& B: x+ [2 z. [/ ~, v
百度了以下,我现在的理解是影子区域的问题,在配置寄存器的时候默认配置到了全局区域通道寄存器,按理说应该配置影子区域通道寄存器,3 m7 ]/ V2 P4 }. V( Z
不知道大家是否有遇到此类问题,如何操作影子区域,给下指点。谢谢了!
1 J2 l9 K" X1 \7 \6 s" E
$ w/ ~; n" Q4 \: G, c% E! d4 e9 h) ?1 Z& A% {& 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
* [3 D5 b' W. P& n8 G3 ]- X" _我还想请教下,在EMIF_AD7606_200K_EDMA例程当中,& E7 f% a7 \* Y
                        (unsigned int)(1<<2 | 1<<20 | \
: e) B( k. L$ o                         (EDMA3_CHA_GPIO_BNKINT5 << EDMA3CC_OPT_TCC_SHIFT)),// Opt
3 _" N" J4 @* O                        (unsigned int)SOC_EMIFA_CS2_ADDR,                                        // 源地址# |1 D# @( t" {# r0 }
                        (unsigned short)(MAX_ACOUNT),                                                // aCnt
+ o" J( F: M1 b                        (unsigned short)(MAX_BCOUNT),                                                // bCnt
( o( g; @/ F9 z                        (unsigned int) rcv_buffer1,                                                // 目标地址
7 H$ e# U1 y" X2 V9 J                        (short) (MAX_ACOUNT),                                                                // 源 bIdx
1 I5 S+ c2 y, Y4 u8 n5 ]                        (short)(MAX_ACOUNT * MAX_CCOUNT),                                        // 目标 bIdx
+ T$ y/ j' q1 J4 q& l1 L" H                        (unsigned short)(32u * 40u),                                                // 链接地址 这里只是用了低12位+ q, R. w9 ~* e6 G; P6 D. h
                        (unsigned short)(MAX_BCOUNT),                                                // bCnt 重装值
4 K1 W( \6 }6 C* ^& Y6 N9 O                        (short)(MAX_ACOUNT * MAX_BCOUNT),                                        // 源 cIdx- b4 p8 \4 c, ]# N, v
                        (short)(MAX_ACOUNT),                                                                // 目标 cIdx3 i* i6 d' r4 x
                        (unsigned short)MAX_CCOUNT                                                        // cCnt
# G  M: y8 d- L6 o6 `- k3 |+ A# R5 V2 X7 _
而在数据手册中,
" a: p: p7 r% N  J[attach]2053[/attach]
% t) s# D: }4 h- x4 ]) }% ^数据手册将Link 设置为了4800h,  也就是 0x4000 | (64u * 32u),$ ]' Q5 U: W& B
请问下,是不是,对于EDMA3控制器,只是获取低12位的值呢?
! y2 f* Q5 l0 G% w2 W% @  h
作者: Lewis    时间: 2017-3-20 16:25
link是param的偏移地址,并不是指用到低12bit




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