PCIE之PCIEManager.h

来源:互联网 发布:乐乎城市青年社区租房 编辑:程序博客网 时间:2024/04/30 07:58
#ifndef PCIEMANAGER_H#define PCIEMANAGER_H#include "XilApi.h"#include <string>#include <memory>#include <QDebug>#include <time.h>#define COMMON_BUFFER_SIZE 0x40000class PCIEManager{public:    static PCIEManager& GetInstance();//返回PCIEManager的引用    bool openBoard(std::string& errorInfo = std::string());//打开板卡    bool closeBoard();//关闭板卡    bool resetBoard(std::string& errorInfo = std::string());//复位板卡    bool isOpened() const;//板卡是否打开    int getDMABufLength()const;//获取板卡的DMA缓存大小    U64 getDmaUserAddr()const;    bool read(void *pBuf, const int len);//从板卡读取数据到内存    bool write(void *pBuf, const int len);//从内存写数据到板卡    bool isReadyRead();    bool isReadyWrite();int isExistFrameHeader();//是否存在帧头U32  frameHeaderOffset();//帧头的偏移地址    U32 getDmaSendBitrate() const;    U32 getDmaRecvBitrate() const;    bool setDmaSendBitrate(U32 value);    bool setDmaRecvBitrate(U32 value);    //获取特定地址寄存器值    U32 PCIERegRead(U16 offset);    XIL_STATUS PCIERegWrite(U16 offset,U32 ValueToWrite);private:    PCIEManager();    struct PCIEManagerPrivate;               //类内结构体需要这样声明吗******************************************    std::auto_ptr<PCIEManagerPrivate> pData;//auto_ptr就是动态分配对象以及在对象不再需要时执行自动清理    const U8 PCIE_READ_TLP_SIZE;    const U8 PCIE_WRITE_TLP_SIZE;};#endif // PCIEMANAGER_H

0 0
原创粉丝点击