为什么DAT_copy还是不对?
我用的是ccs 3.1,在DM642上想用DAT_copy来传数据,结果不对。TI给的那个例子运行也不对不对呢?。到底DAT_copy该怎么用?我也下载了最新的c6000.exe来升级,仍然不对。发现好象DAT_copy根本就没有搬运数据。为什么会出现这种情况呢?希望各位大虾多多指教,谢谢!
ccs-->help-->content在里面输入你要查询的函数
Uint32 DAT_copy2d(
Uint32 type,
void *src,
void *dst,
Uint16 lineLen,
Uint16 lineCnt,
Uint16 linePitch
);
Arguments type Transfer type:
- DAT_1D2D
- DAT_2D1D
- DAT_2D2D
src Pointer to source data
dst Pointer to destination location
lineLen Number of bytes per line
lineCnt Number of lines
linePitch Number of bytes between start of one line to start of next line
你说的这个我试过了,默认的DAT_copy是1D到1D拷贝嘛.我也试过2D传输,设置1D到2D,2D到1D,2D到2D,但是还是不对.
我连EDMA,QDMA都试过,但是效果不是很理想,这段时间被这个问题弄的很头痛. 不知道你能不能给我个你的例子,我的email:jaguar911@163.com,万分感谢!
今天又找了几个例子,发觉如果片外存储器设置为不能CACHE,而且L2全部设置为SRAM,内存搬运是片外到片内SRAM,DAT_copy就成功了。如果设置为片外可以CACHE,L2也设置部分CACHE,内存搬运是片外到片外的话,还是报错.
注意:我是做了L2CACHE和片外内存的一致性操作(CACHE_wbInvL2)的.所以很郁闷,不晓得问题出在哪里了!希望各位大虾继续赐教,谢谢,哈
这几天研究DM642的EDMA,QDMA,DAT_copy,看了很多文挡,资料,还是不是很清楚.
DAT_copy可以用DAT_wait来判断传输是否结束了.但是EDMA,QDMA怎么判断呢?
我是使用一个循环来判断EDMA,QDMA的优先级是否到了,来判断是否传完了.不晓得对不对.而且用循环判断的话,我觉得效率很低,不知道中断怎么样?可以设置传输完了中断,但是我怎么检测中断啊,难道还是要用循环来看中断的那位是否植被修改了?
我做DSP视频采集,然后压缩成MPEG2传到PC端.在采集YUV图象,或是宏块编码的时候,用EDMA还是QDMA更好呢?到底要不要设置L2 CACHE?
小弟刚开始接触这方面的东西,还在摸索,所以问题较多.还希望各位有经验的大虾,多多帮助,不胜感激!