B.2.9. CADIMemSpaceInfo_t

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.

Example B.18. CADIMemSpaceInfo_t

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/Physical space.

isCache

specifies that this memory space is a cache.

endianness

is the endianness, 0=mono-endian (arch defined), 1=LE, 2=BE .

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 specified in CADITargetFeatures_t::canonicalMemoryDescription. If the scheme is the empty string then no meaning can be ascribed to this field.

Copyright © 2014 ARM. All rights reserved.ARM DUI 0842B
Non-ConfidentialID111014