Zephyr API Documentation  3.0.0
A Scalable Open Source RTOS
3.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
devicetree_regions.h File Reference

Go to the source code of this file.

Macros

#define LINKER_DT_NODE_REGION_NAME(node_id)    DT_PROP_OR(node_id, zephyr_memory_region, DT_NODE_PATH(node_id))
 Get the linker memory-region name. More...
 
#define LINKER_DT_REGION_FROM_NODE(node_id, attr)
 Generate a linker memory region from a devicetree node. More...
 

Macro Definition Documentation

◆ LINKER_DT_NODE_REGION_NAME

#define LINKER_DT_NODE_REGION_NAME (   node_id)     DT_PROP_OR(node_id, zephyr_memory_region, DT_NODE_PATH(node_id))

Get the linker memory-region name.

This attempts to use the zephyr,memory-region property, falling back to the node path if it doesn't exist.

Example devicetree fragment:

/ {
        soc {
                sram1: memory@2000000 {
                    zephyr,memory-region = "MY_NAME";
                };
                sram2: memory@2001000 { ... };
        };
};

Example usage:

LINKER_DT_NODE_REGION_NAME(DT_NODELABEL(sram1)) // "MY_NAME" LINKER_DT_NODE_REGION_NAME(DT_NODELABEL(sram2)) // "/soc/memory@2001000"

Parameters
node_idnode identifier
Returns
the name of the memory memory region the node will generate

◆ LINKER_DT_REGION_FROM_NODE

#define LINKER_DT_REGION_FROM_NODE (   node_id,
  attr 
)
Value:
COND_CODE_1(DT_NODE_HAS_STATUS(node_id, okay), \
(_REGION_DECLARE(node_id, attr)), \
())
#define DT_NODE_HAS_STATUS(node_id, status)
Does a node identifier refer to a node with a status?
Definition: devicetree.h:2097
#define COND_CODE_1(_flag, _if_1_code, _else_code)
Insert code depending on whether _flag expands to 1 or not.
Definition: util_macro.h:156

Generate a linker memory region from a devicetree node.

Parameters
node_iddevicetree node identifier with a <reg> property defining region location and size
attrregion attributes to use (rx, rw, ...)