| |||
Home > Data Structures Used by the CADI Interface > Registers and memory > CADIMemBlockInfo_t |
This is a single block of memory addresses (inside a single
memory space) that all have the same properties. For example, different
memory blocks in the same memory space might be read-only. Blocks
can be nested within one another. Blocks at the root level have CADI_MEMBLOCK_ROOT
as
the parent ID.
name
is used to give you an idea of the
type of memory ("off chip
", for example). If cyclesToAccess
is
0, the number is unknown or irrelevant.
Example B.19. CADIMemBlockInfo_t
struct CADIMemBlockInfo_t { public: // methods CADIMemBlockInfo_t(const char *name_par = "", const char *description_par = "", uint16_t id = 0, uint16_t parentID = 0, CADIAddrSimple_t startAddr = 0, CADIAddrSimple_t endAddr = 0, uint32_t cyclesToAccess = 0, CADIMemReadWrite_t readWrite = CADI_MEM_ReadWrite, uint32_t *supportedMultiplesOfMAU_ = 0, uint32_t endianness = 0, uint32_t invariance = 0) : id(id), parentID(parentID), startAddr(startAddr), endAddr(endAddr), cyclesToAccess(cyclesToAccess), readWrite(readWrite), endianness(endianness), invariance(invariance) { AssignString(name, name_par, CADI_NAME_SIZE); AssignString(description, description_par, CADI_DESCRIPTION_SIZE); if (supportedMultiplesOfMAU_) std::memcpy(supportedMultiplesOfMAU, supportedMultiplesOfMAU_, sizeof(supportedMultiplesOfMAU)); else std::memset(supportedMultiplesOfMAU, 0, sizeof(supportedMultiplesOfMAU)); } public: // data char name[CADI_NAME_SIZE]; char description[CADI_DESCRIPTION_SIZE]; uint16_t id; uint16_t parentID; CADIAddrSimple_t startAddr; CADIAddrSimple_t endAddr; uint32_t cyclesToAccess; CADIMemReadWrite_t readWrite; uint32_t supportedMultiplesOfMAU[CADI_MAU_MULTIPLES_LIST_SIZE]; uint8_t endianness; uint8_t invariance; };
The data members are:
name
is the memory block name
description
is the memory block description.
id
is the memory block ID
parentID
The ID of the parent. CADI_MEMBLOCK_ROOT
if
no parent.
startAddr
is the start address of this memory block
endAddr
is the end address of this memory block
cyclesToAccess
specifies the number of cycles required for an access to this block
readWrite
specifies the read/write type of this block
supportedMultiplesOfMAU
indicates the multiples on one byte. If for example the MAU size is 8 bits and the supported access is 32 bits, the corresponding value is 4 (from 32bits/8bits).
endianness
endianness, 0=same as owning memory space, 1=LE, 2=BE
invariance
is the unit of invariance in bytes, 0=same as owning memory space.