问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 4839 人浏览分享

开启左侧

PCIE 访问问题

[复制链接]
4839 3
我在win10下面进行测试,使用官方的 xdma_driver_win_src_2018_2驱动版本测试发现小于8MB的数据发送到板上内存后, 回传,验证的md5值相同
但是大于8M的数据测试发送回传数据不正常, MD5值不一样

size_t device_file::write(char* buffer, size_t size, long offset) {
        seek(BASE_OFFSET+offset); //修改起始位置
        DWORD wr_size = 0;
        //单次传输大小不能超过8M
        unsigned int transfers;
        unsigned int i;
        transfers = (size / MAX_BYTES_PER_TRANSFER);
        for (i = 0; i < transfers; i++) {
                if (!WriteFile(h, (void *)(buffer + i * MAX_BYTES_PER_TRANSFER), MAX_BYTES_PER_TRANSFER, &wr_size, NULL)) {
                        return -1;
                }
                if (wr_size != MAX_BYTES_PER_TRANSFER) {
                        return -2;
                }
        }
        if (!WriteFile(h, (void *)(buffer + i * MAX_BYTES_PER_TRANSFER), (DWORD)(size - i * MAX_BYTES_PER_TRANSFER), &wr_size, NULL)) {
                return -1;
        }
        if (wr_size != (size - i * MAX_BYTES_PER_TRANSFER)) {
                return -2;
        }
        return size;
}


size_t device_file::read(char* buffer, size_t size, long offset) {
        seek(BASE_OFFSET+offset); //修改起始位置
        DWORD rd_size = 0;
        unsigned int transfers;
        unsigned int i;
        transfers = (size / MAX_BYTES_PER_TRANSFER);
        for (i = 0; i < transfers; i++){
                if (!ReadFile(h, (void *)(buffer + i * MAX_BYTES_PER_TRANSFER), (DWORD)MAX_BYTES_PER_TRANSFER, &rd_size, NULL)){
                        return -1;
                }
                if (rd_size != MAX_BYTES_PER_TRANSFER){
                        return -2;
                }
        }
        if (!ReadFile(h, (void *)(buffer + i * MAX_BYTES_PER_TRANSFER), (DWORD)(size - i * MAX_BYTES_PER_TRANSFER), &rd_size, NULL)){
                return -1;
        }
        if (rd_size != (size - i * MAX_BYTES_PER_TRANSFER)){
                return -2;
        }

        return size;
}


上位机的发送和接收程序是按照图传的代码写的.不知道哪个地方出问题了,
我单独测试图传程序也会出现图片错位和数据乱的问题

评论 2

yanjie_x  新手上路  发表于 2019-3-13 08:55:50 | 显示全部楼层
本帖最后由 yanjie_x 于 2019-3-13 09:13 编辑

不清楚问题在哪儿, 发现做重新修改地址偏移也没有问题
uisrc  管理员  发表于 2019-3-13 09:25:37 | 显示全部楼层
我们自己测试的代码没有这个问题,建议使用我们配套的版本的驱动和代码,这样方便出了问题进行对比分析。
越努力越幸运!加油!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

2

粉丝

9

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版