Placing the section which holds __ramfunc functions

Technical Note 82175

Architectures:

ARM

Component:

linker

Updated:

5/31/2018 9:14 AM

Introduction

This Technical Note sorts out an issue in version 5.xx of IAR Embedded Workbench for ARM.

Background

The issue is that the documentation is unclear on this topic.

Information

The __ramfunc functions are placed in the section .textrw
The placement can be done as in this example. In the .icf file do:

define symbol __RAM_func_start__ = 0x00200000;
define symbol __RAM_func_end__ = 0x00207FFF;
define region RAM_func_region = mem:[from __RAM_func_start__ to __RAM_func_end__];

define block RamCode {section .textrw};
place in RAM_func_region { block RamCode };
initialize by copy {readwrite};

Note that...

...this Technical Note does not apply to IAR Embedded Workbench ARM versions 5.10 and 5.11, where the IAR ILINK Linker worked in another way.

All product names are trademarks or registered trademarks of their respective owners

We do no longer support Internet Explorer. To get the best experience of iar.com, we recommend upgrading to a modern browser such as Chrome or Edge.