现在可以从外部硬件上读大量数据,但是是一点一点慢慢读的,请问在wince下有没有更快的批量读过来的方法,比如在linux系统下的copy_to_usr()就可以批量读数据。小妹对WInce没有linux了解,求助啊?现在的方法就是将硬件地址映射为虚拟地址,然后一点一点读的。
v_pFPGA_WaveData= (FPGA_WaveData*)VirtualAlloc(0,sizeof(FPGA_WaveData),MEM_RESERVE, PAGE_NOACCESS);
if(v_pFPGA_WaveData==NULL)
{
AfxMessageBox(_T("FPGA_WaveData Alloc错"));
}
else
{
if(!VirtualCopy((PVOID)v_pFPGA_WaveData,(PVOID)(FPGA_WAVEDATA>>8),sizeof(FPGA_WaveData),PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE))
{
AfxMessageBox(_T("FPGA_WaveData Copy错"));
if(v_pFPGA_WaveData)
VirtualFree((PVOID)v_pFPGA_WaveData,0,MEM_RELEASE);
v_pFPGA_WaveData = NULL;
}
}
for(i=0;i<(604*201/2+30);i++)
{
ret=(v_pFPGA_WaveData->dwWaveData);
g_nDPXData[2*i]=(U16)(ret&0xFFFF);
g_nDPXData[2*i+1]=(U16)(ret>>16&0xFFFF);
}