主题 : 求助:wince下如何从硬件上快速读取数据 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 66141
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
贡献值: 0 点
综合积分: 8 分
注册时间: 2012-03-26
最后登录: 2013-03-18
楼主  发表于: 2013-03-18 14:13

 求助:wince下如何从硬件上快速读取数据

现在可以从外部硬件上读大量数据,但是是一点一点慢慢读的,请问在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);
    }
级别: 新手上路
UID: 66141
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
贡献值: 0 点
综合积分: 8 分
注册时间: 2012-03-26
最后登录: 2013-03-18
1楼  发表于: 2013-03-18 14:14
谢谢各位大神大哥了