B.2.10 CADIMemBlockInfo_t

This struct 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.

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;   
};
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 that are required for an access to this block.
readWrite
specifies the read/write type of this block.
supportedMultiplesOfMAU
indicates the multiples of 1 byte. If for example the MAU size is 8 bits and the supported access is 32 bits, the corresponding value is 4 (from 32 bits or 8 bits).
endianness
is the endianness, 0 = same as owning memory space, 1 = little-endian, 2 = big-endian.
invariance
is the unit of invariance in bytes, 0=same as owning memory space.
Non-ConfidentialPDF file icon PDF version100963_0200_03_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.