嵌入式开发者社区
标题:
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! d
4 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), // 目标 cIdx
3 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