77范文网 - 专业文章范例文档资料分享平台

Xilinx FPGA PCIE Linux驱动程序(4)

来源:网络收集 时间:2018-12-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

goto exit; } exit:

return ret; }

ssize_t XPCIe_WriteMem(constchar *buf, size_t count) {

int ret = 0;

dma_addr_t dma_addr;

if ( (count % 4) != 0 ) {

printk(\,gDrvrName); ret = -1; return ret; //goto exit; }

// Now it is safe to copy the data from user space. if ( copy_from_user(gWriteBuffer, buf, count) ) {

ret = -1;

printk(\,gDrvrName); return ret; //goto exit; }

//set DMA semaphore if in loopback down(&gSem[SEM_DMA]);

// pci_map_single return the physical address corresponding to // the virtual address passed to it as the 2nd parameter

dma_addr = pci_map_single(gDev, gWriteBuffer, BUF_SIZE, PCI_DMA_FROMDEVICE); if ( 0 == dma_addr ) {

printk(\,gDrvrName); ret = -1;

up(&gSem[SEM_DMA]); return ret;

//goto exit; // return 之前要释放互斥量,不能直接return }

// Now pass the physical address to the device hardware. This is now // the source physical address for the DMA and hence the to be // put on Memory Transactions

// Do DMA transfer here....

// 直接调用read write 函数进行传输? // 宋宝华第页流程图

printk(\, gDrvrName, (unsignedint)gReadBuffer, (unsignedint)dma_addr);

// Unmap the DMA buffer so it is safe for normal access again.

pci_unmap_single(gDev, dma_addr, BUF_SIZE, PCI_DMA_FROMDEVICE);

up(&gSem[SEM_DMA]);

exit:

return (ret); }

u32 XPCIe_ReadCfgReg (u32 byte) {

u32 pciReg;

if (pci_read_config_dword(gDev, byte, &pciReg) < 0) {

printk(\,gDrvrName); return (-1); }

return (pciReg); }

u32 XPCIe_WriteCfgReg (u32 byte, u32 val) {

if (pci_write_config_dword(gDev, byte, val) < 0) {

printk(\,gDrvrName); return (-1); } return 1; }

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Xilinx FPGA PCIE Linux驱动程序(4)在线全文阅读。

Xilinx FPGA PCIE Linux驱动程序(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/328458.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: