最近在学习C6747
EDMA3过程中遇到很多问题,在网上找了一些资料,虽然也是EDMA,但是和6747有一定的出入,OTP寄存器的设置也不大相同,并且都说的不够详细,所以我结合这些情况,对C647的EDMA3模块进行了简单的分解,如果有什么不对的还往看到的人留言提出宝贵意见,如果需要程序的可以联系hm_love1204@126.com
1、
关于3维数据的划分
如下图,ACNT表示的是你所传输的数据中,每一个数列的字节数,BCNT,CCNT不一一解释,如以下数组的定义,一般分几维处理是因为前一个array的末元素地址和后一个array的首元素地址不是连着的,或者一些其他原因的需要,必须分开进行处理。。。
int a[CCNT][BCNT]ACNT];

2
关于几种同步传输方式
2.1 A-Synchronized Transfers
该传输方式每一个事件只能触发传输ACNT字节(Bytes)的数据,所以该种数据传输方式完成一个PaRAM set的数据传输需要BCNT*CCNT次事件触发。
上图明确表示出了BIDX和CIDX的计算方法,如BIDX=array1的首地址-array0的首地址。CIDX=frame2中array0的首地址-frame1中array3的首地址。注意此处均要按照字节数计。

2.2 AB-Synchronized
Transfers
在这种传输方式中,每一个DMA事件触发传送ACNT*BCNT个数据,即传输一个frame。因此完成一个PaRAM set需要CCNT次DMA事件的触发。
3.OTP的分解
EMDA
Transfer Configuration Option
的定义如下:
位
|
域
|
值
|
描述
|
31-28
|
保留
|
0
|
保留
|
27-24
|
PRIVID
|
0-Fh
|
只读。优先级标识位。
|
23
|
ITCCHEN
|
0
1
|
Intermediate transfer completion chaining enable
禁止
使能
上文已经说过,一个通道传输的完成会有BCNT*CCNT(或CCNT)个事件触发,此处的中间完成指的是其中的任何一次传输完成,下同
|
22
|
TCCHEN
|
0
1
|
transfer
completion chaining enable
禁止
使能
|
21
|
ITCINTEN
|
0
1
|
Intermediate transfer completion interrupt
enable
禁止
使能
|
20
|
TCINTEN
|
0
1
|
transfer
completion interrupt enable
禁止
使能
|
19
|
保留
|
0
|
保留,总是向该位写0
|
18
|
保留
|
0
|
保留
|
17-12
|
TCC
|
0-3F
0-1F
20h-
3Fh
|
Transfer
complete code。用来设置链接使能寄存器(CER[TCC])来链接,或中断挂起寄存器(IPR[TCC])来产生中断。
有效,表示事件n引起的中断
保留
|
11
|
TCCMODE
|
0
1
|
Transfer
complete code mode. Indicates the point at which a transfer is
considered completed for chaining and interrupt
generation.
传输完成正常。
Early
completion:在EDMA3CC提交一个TR后该传输认为完成了。当中断/chain触发的时候,TC可能仍在传输数据。
|
10-8
|
FWID
|
0-7F
0
1
2
3
4
5
6-7
|
FIFO
Width. Applies if either SAM or DAM is set to constant addressing
mode
FIFO width
is 8-bit.
16-bit
32-bit
64-bit
128-bit
256-bit
保留
|
7-4
|
保留
|
0
|
保留
|
3
|
STATIC
|
0
1
|
Static
PaRAM set.
PaRAM set
is not static.
PaRAM set
is static。一个TR递交以后PaRAM set
不会更新或者linked。
|
2
|
SYNCDIM
|
0
1
|
传输同步维度
一维
2维
|
1
|
DAM
|
0
1
|
目的地址模式
增模式。非FIFO,目的地址在矩阵地址范围内
恒定(constant)地址模式
|
0
|
SAM
|
0
1
|
源地址模式
增模式。非FIFO,目的地址在矩阵地址范围内
恒定(constant)地址模式
|
4.
EDMA各通道对应的事件:

5.
EDMA事件的触发
EDMA3事件触发和其他的芯片类似就不再赘述,很多人已讲过很多次。。。
6.
注意事项
1)传输源地址必须是L2
L2:
o = 11800000h l =
00040000h
|