B.2.9 CADIMemSpaceInfo_t

This struct contains memory space info data.

Each memory space (program and data, for example) in the system has a separate set of addresses. Any location in the memory of a device can be fully specified with no less than an indication of the memory space and the address within that space. Only one space can have the isProgramMemory flag set.

struct CADIMemSpaceInfo_t 
{ 
public: // methods 
        CADIMemSpaceInfo_t(const char *memSpaceName_par = "", 
                         const char *description_par = "",
                         uint32_t memSpaceId = 0,
                         uint32_t bitsPerMau = 0,
                         CADIAddrSimple_t maxAddress = 0,
                         uint32_t nrMemBlocks = 0,
                         int32_t isProgramMemory = false,
                         CADIAddrSimple_t minAddress = 0, 
                         int32_t isVirtualMemory = false,
                         uint32_t isCache = false, 
                         uint8_t endianness = 0,
                         uint8_t invariance = 0, 
                         uint32_t dwarfMemSpaceId = NO_DWARF_ID) : 
                memSpaceId(memSpaceId),
                bitsPerMau(bitsPerMau),
                maxAddress(maxAddress),
                nrMemBlocks(nrMemBlocks),
                isProgramMemory(isProgramMemory),
                minAddress(minAddress), 
                isVirtualMemory(isVirtualMemory),
                isCache(isCache),
                endianness(endianness),
                invariance(invariance),
                dwarfMemSpaceId(dwarfMemSpaceId) 
        { 
            AssignString(memSpaceName, memSpaceName_par, CADI_NAME_SIZE); 
            AssignString(description, description_par, CADI_DESCRIPTION_SIZE); 
        } 
public: // data 
        char       memSpaceName[CADI_NAME_SIZE]; 
        char       description[CADI_DESCRIPTION_SIZE]; 
        uint32_t   memSpaceId; 
        uint32_t   bitsPerMau;  
        CADIAddrSimple_t maxAddress;   
        uint32_t   nrMemBlocks; 
        int32_t    isProgramMemory; 
        CADIAddrSimple_t minAddress; 
        int32_t    isVirtualMemory;  
        uint32_t   isCache;   
        uint8_t    endianness;  
        uint8_t    invariance;  
        enum { NO_DWARF_ID = 0xffffffff }; 
        uint32_t   dwarfMemSpaceId;
        uint32_t   canonicalMemoryNumber; 
};
memSpaceName
is the memory space name.
description
is the memory space description.
memSpaceId
is the memory space ID.
bitsPerMau
specifies its per Minimum Addressable Unit (for example, 8 for byte).
maxAddress
is the maximum address of this memory space.
nrMemBlocks
is the number of memory blocks.
isProgramMemory
specifies program memory. Only one space can have the isProgramMemory flag set.
minAddress
specifies the minimum address of this memory space.
isVirtualMemory
specifies that this memory space is a Virtual or a Physical space.
isCache
specifies that this memory space is a cache.
endianness
is the endianness, 0 = variable endianness as defined by the architecture, 1 = always little-endian, 2 = always big-endian.
invariance
is the unit of invariance in bytes, 0 = fixed invariance (arch defined).
dwarfMemSpaceId
is the DWARF memory space ID (NO_DWARF_ID if memory space has no DWARF memory space ID).
canonicalMemoryNumber
is the canonical memory number as defined by the scheme that is specified in CADITargetFeatures_t::canonicalMemoryDescription. If the scheme is the empty string, then no meaning can be ascribed to this field.
Non-ConfidentialPDF file icon PDF version100963_0200_03_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.