嵌入式开发者社区

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

作者: 小石    时间: 2017-3-6 10:34
标题: EDMA3控制器 影子区域问题
在OMAPL138  DSP核中实现EMIF数据传输 ,通过EDMA控制,因为传输的数据量比较大,我将连接和链接都用上了,通过GPIO Bank6 中断触发事件  EDMA通道控制器1的通道16,
' p. ]+ |, P/ O/ t- Z6 C) x使用仿真器仿真的时候,是可以正常传输数据,但是将烧写到NandFlash后启动,传输完成后,就不能产生 完成传输中断,' o% K2 }) W8 B
百度了以下,我现在的理解是影子区域的问题,在配置寄存器的时候默认配置到了全局区域通道寄存器,按理说应该配置影子区域通道寄存器," n- x  I& A  O
不知道大家是否有遇到此类问题,如何操作影子区域,给下指点。谢谢了!
( Q" N! W2 \2 ?; Z7 n
# s+ x8 q7 ^: f( S3 |  y# v& q4 H
4 o& c" {1 T. M, ^8 R
作者: 小石    时间: 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
* Y* ]$ O; s2 i% x) X3 k我还想请教下,在EMIF_AD7606_200K_EDMA例程当中,  a& `) Y2 \8 I; u, P, D0 O; L
                        (unsigned int)(1<<2 | 1<<20 | \
- C- S% Y8 ], K9 X1 g                         (EDMA3_CHA_GPIO_BNKINT5 << EDMA3CC_OPT_TCC_SHIFT)),// Opt
% j) B1 {7 g8 z' b# {& ^9 s                        (unsigned int)SOC_EMIFA_CS2_ADDR,                                        // 源地址* _2 F1 ]+ f, y% W/ |" p! S
                        (unsigned short)(MAX_ACOUNT),                                                // aCnt
! Z5 B. }7 v; ~0 M" s9 o7 ~/ u                        (unsigned short)(MAX_BCOUNT),                                                // bCnt
( F* M* @: {* e" W1 a, j: M" r                        (unsigned int) rcv_buffer1,                                                // 目标地址
6 W: m% e1 S( S$ S5 {6 t6 r' }4 Z                        (short) (MAX_ACOUNT),                                                                // 源 bIdx: Z0 R  n6 H. I1 D2 g8 P6 q. P
                        (short)(MAX_ACOUNT * MAX_CCOUNT),                                        // 目标 bIdx
& V9 X3 y, i, Z" g# b3 H                        (unsigned short)(32u * 40u),                                                // 链接地址 这里只是用了低12位
5 b; K) h# A2 D                        (unsigned short)(MAX_BCOUNT),                                                // bCnt 重装值
8 w( {) R5 A4 @  G* T- Y& `                        (short)(MAX_ACOUNT * MAX_BCOUNT),                                        // 源 cIdx6 H! p9 g7 C7 |8 f
                        (short)(MAX_ACOUNT),                                                                // 目标 cIdx0 R( v2 p2 Y/ x
                        (unsigned short)MAX_CCOUNT                                                        // cCnt
# u& e+ s- h, o8 x8 T5 D1 C# s% [  @( I# T: J
而在数据手册中,+ b$ H- M# A5 M( X
[attach]2053[/attach]' y; P5 n7 o1 X4 x7 }' O
数据手册将Link 设置为了4800h,  也就是 0x4000 | (64u * 32u),8 k: T0 n3 {) \4 o3 n; q
请问下,是不是,对于EDMA3控制器,只是获取低12位的值呢?
6 }! m" N$ T3 p" o
作者: Lewis    时间: 2017-3-20 16:25
link是param的偏移地址,并不是指用到低12bit




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