Skip to main content

IAR Embedded Workbench for RH850 3.20.x

Controlling data and function placement in memory

In this section:

The compiler provides different mechanisms for controlling placement of functions and data objects in memory. To use memory efficiently, you should be familiar with these mechanisms and know which one is best suited for different situations. You can use:

  • Data models

    By selecting a data model, you can take advantage of the different addressing modes available for the microcontroller and thereby also place data objects in different parts of memory. If possible, use the Small or Medium data model and avoid the Large data model. For more information, see Data models.

  • Data memory attributes

    Using IAR-specific keywords or pragma directives, you can override the default addressing mode, and the default placement of functions and data objects. For more information, see Using data memory attributes.

  • The @ operator and the #pragma location directive for absolute placement.

    Using the @ operator or the #pragma location directive, you can place individual global and static variables at absolute addresses. Note that it is not possible to use this notation for absolute placement of individual functions. For more information, see Data placement at an absolute location.

  • The @ operator and the #pragma location directive for section placement.

    Using the @ operator or the #pragma location directive, you can place individual functions, variables, and constants in named sections. The placement of these sections can then be controlled by linker directives. For more information, see Data and function placement in sections.