以下为DMA代码 :
UINT32 Length=0x2000;
UINT32 pbuffer=cacheDmaMalloc(Length*4);
*(UINT8*)(Base0Addr+0x8e) =0x01;/*open Dma inter Mask */ *(UINT32*)(Base0Addr+0x0) = pbuffer ;/*dma address*/
*(UINT32*)(Base0Addr+0x08) =Length*4; /*dma transmitte length*/
*(UINT32*)(Base0Addr+0x90)= 0x10000;/*DMA start;*/
semTake(DataReady,WAIT_FOREVER); /* wait for DMA Intrrupt Event*/
cacheDmaFree((char*)pbuffer);
发觉在4k下数据正常,>4K则不正常,中间老有一段乱数。
我想一次读取1M数据
我试过
1:将pbuffer &0xFFFFF000
结果:8k正常,但到0x256K 又不正常。。
2:指定Vxworks 下一段没用的空间 比如:0x6D00000
8K有时正常,有时不正常 ,1M就根本没成功过。
请各位大侠帮忙。

 
					
				
 
			
			
			
						
			 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

