FpgaManager
Software API Documentation
FpgaManager_Utilities.h
1 
2 #pragma once
3 
4 // ================================================================================
5 // PUBLIC INCLUDES
6 // ================================================================================
7 
8 #include "FpgaManager_Types.h"
9 #include "FpgaManager_Interfaces.h"
10 
11 #include <cstdint>
12 #include <functional>
13 #include <memory>
14 #include <array>
15 
20 
21 // ================================================================================
22 // NAMESPACE
23 // ================================================================================
24 
25 namespace enclustra {
26 namespace fpgamanager {
27 
28 // ================================================================================
29 // REGISTER BANK
30 // ================================================================================
31 
35 class RegisterBank : public IMmAccess
36 {
37  IMmAccess& _mm;
38  uint32_t _baseAddress;
39 public:
45  RegisterBank(IMmAccess& mm, uint32_t baseAddress);
46 
48 
54  virtual uint32_t ReadRegister(uint32_t address) override;
55 
61  virtual void WriteRegister(uint32_t address, uint32_t value) override;
62 
69  virtual void ReadContiguous(uint32_t address, uint8_t* buffer_p, std::size_t bufSize) override;
70 
77  virtual void WriteContiguous(uint32_t address, const uint8_t* buffer_p, std::size_t bufSize) override;
78 
85  virtual void ReadMailbox(uint32_t address, uint8_t* buffer_p, std::size_t bufSize) override;
86 
93  virtual void WriteMailbox(uint32_t address, const uint8_t* buffer_p, std::size_t bufSize) override;
94 
101  virtual void ReadMailbox(uint32_t address, uint32_t* buffer_p, std::size_t count) override;
102 
109  virtual void WriteMailbox(uint32_t address, const uint32_t* buffer_p, std::size_t count) override;
110 };
111 
112 // ================================================================================
113 // TRAILER
114 // ================================================================================
115 
116 }
117 }
118 
virtual void ReadContiguous(uint32_t address, uint8_t *buffer_p, std::size_t bufSize) override
Reads consecutive bytes from mapped memory/registers
virtual void WriteRegister(uint32_t address, uint32_t value) override
Writes to a single register
Interface definition of the FPGA Manager MmAccess interface
Definition: FpgaManager_Interfaces.h:102
Provides a MmAccess interface with an offset
Definition: FpgaManager_Utilities.h:35
RegisterBank(IMmAccess &mm, uint32_t baseAddress)
Constructs a Register Bank
virtual void WriteMailbox(uint32_t address, const uint8_t *buffer_p, std::size_t bufSize)=0
Writes multiple words to a single address location
Definition: FpgaManager.h:28
virtual void ReadMailbox(uint32_t address, uint8_t *buffer_p, std::size_t bufSize) override
Reads multiple words from a single address location
virtual void WriteMailbox(uint32_t address, const uint8_t *buffer_p, std::size_t bufSize) override
Writes multiple words to a single address location
virtual void WriteContiguous(uint32_t address, const uint8_t *buffer_p, std::size_t bufSize) override
Writes consecutive bytes to mapped memory/registers
virtual uint32_t ReadRegister(uint32_t address) override
Reads from a single register