嵌入式开发者社区
标题:
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), // aCnt
6 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), // 源 bIdx
5 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), // 目标 cIdx
5 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