Skip to main content

IAR Embedded Workbench for RX 5.20

Prebuilt runtime libraries

In this section:

The prebuilt runtime libraries are configured for different combinations of these options:

  • Processor core

  • Size of the double floating-point type

  • Size of the int data type

  • Byte order for data access

  • Support for position-independent code and data

  • FPU support

  • Library configuration—Normal or Full.

Note

All prebuilt runtime libraries are built using the Huge data model. However, they can be used by an application built using any data model.

The linker will automatically include the correct library files and library configuration file. To explicitly specify a library configuration, use the ‑‑dlib_config compiler option. However, the Full library configuration is the only configuration that exists for Libc++. The ‑‑dlib_config compiler option cannot be used to specify another configuration.

Tip

To see which runtime library files that the linker includes, use the linker option ‑‑log libraries, see ‑‑log.

Library filename syntax

The names of the libraries are constructed from these elements:

{library}

dl for the IAR DLIB runtime environment

{cpu}

rx for the RX microcontroller

{core}

Specifies the processor core:

1 = the RXv1 core

2 = the RXv2 core

3 = the RXv3 core

{size_of_double}

Specifies the size of double:

f = 32 bits

d = 64 bits

{int_size}

Specifies the size of the int data type:

s = 16 bits

l = 32 bits

{byte_order}

Specifies the byte order for data access:

l = little-endian accesses

b = big-endian accesses

[p-i]

Specifies the support for position-independent code and data:

c = position-independent code and read-only data (ROPI)

w = position-independent read/write data (RWPI)

r = position-independent code and data (ROPI and RWPI)

{fpu-supp}

0 = no support for FPU instructions

1 = support for 32-bit FPU instructions

2 = support for 64-bit FPU instructions

{debug_io}

Specifies the type of I/O output:

n = No debug I/O output

d = Debug I/O output

{lib_config}

Specifies the library configuration:

n = Normal

f = Full

You can find the library object files in the subdirectory rx\lib\ and the library configuration files in the rx\inc\ subdirectory.

Groups of library files

The libraries are delivered in groups of library functions:

Library files for C/C++ standard library functions

These are the functions defined by Standard C and C++, for example functions like printf and scanf.

The names of the library files are constructed in the following way:

dlrx{size_of_double}{int_size}{byte_order}[p-i]{lib_config}.a

which more specifically means

dlrx{f|d}{s|l}{l|b}[c|r|w]{n|f}.a
Library files for C++14 standard library functions

There are separate libraries for the C++14 library (dlcpp14) and the Libc++  C++17 library (dllibcpp).

The names of the C++14 library files are constructed in the following way:

dlcpp14rx{size_of_double}{int_size}{byte_order}[p-i]{lib_config}.a

which more specifically means

dlcpp14rx{d|f}{l|s}{b|l}[c|r|w]{f|n}.a
Library files for C++17 standard library functions

There are two libraries when using the C++17 library(dllibcpp). One contains the functions for the floating-point operations for each FPU variant. The other contains non-floating-point type functions.

The names of the C++17 floating-point type library files are constructed in the following way:

dllibcppmrx{core}{size_of_double}{int_size}{byte_order}[p-i]{fpu-supp}.a

which more specifically means

dllibcppmrx{1|2|3}{d|f}{l|s}{b|l}[c|r|w]{0|1|2}.a

The names of the C++17 non-floating-point type library files are constructed in the following way:

dllibcpprx{size_of_double}{int_size}{byte_order}[p-i].a

which more specifically means

dllibcpprx{d|f}{l|s}{b|l}[c|r|w].a
Library files with startup code and runtime support functions

These files contain the system startup code, option ROM, NMI vectors, and default exception handlers. They also include selected runtime routines, mainly floating-point, which are needed when linking modules compiled with the IAR C/C++ Compiler for RX with a C library from another vendor.

The names of the library files are constructed in the following way:

rtrx{core}{size_of_double}{int_size}{byte_order}[p-i].a

which more specifically means

rtrx{1|2}{f|d}{s|l}{l|b}[c|r|w].a
Library files for C-SPY emulated I/O

These are functions for C-SPY emulated I/O.

The names of the library files are constructed in the following way:

dbgrx{size_of_double}{int_size}{byte_order}[p-i]{debug_io}.a

which more specifically means

dbgrx{f|d}{s|l}{l|b}[c|r|w]{n|d}.a
Library files for math functions

These are the functions for floating-point arithmetic and functions with a floating-point type in its signature as defined by Standard C, for example functions like sqrt.

The names of the library files are constructed in the following way:

mrx{core}{size_of_double}{int_size}{byte_order}[p-i]{fpu-supp}.a

which more specifically means

mrx{1|2}{f|d}{s|l}{l|b}[c|r|w]{0|1|2}.a
Library files for thread support functions

These are the functions for thread support.

The names of the library files are constructed in the following way:

thrx{size_of_double}{int_size}{byte_order}[p-i]{lib_config}.a

which more specifically means

thrx{f|d}{s|l}{l|b}[c|r|w]{n|f}.a
Library files for timezone and daylight saving time support functions

These are the functions with support for timezone and daylight saving time functionality.

The names of the library files are constructed in the following way:

tzrx{size_of_double}{int_size}{byte_order}[p-i]{lib_config}.a

which more specifically means

tzrx{f|d}{s|l}{l|b}[c|r|w]{n|f}.a