zephyr/doc/develop/toolchains/iar_arm_toolchain.rst
Robin Kastberg 2004c2f7eb doc: Updated IAR toolchain information for coming version
Corrected the installation instructions for the IAR Arm Toolchain
to reflect the latest recommended version.

Signed-off-by: Robin Kastberg <robin.kastberg@iar.com>
2025-06-18 09:11:04 -04:00

49 lines
1.7 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. _toolchain_iar_arm:
IAR Arm Toolchain
#################
#. Download and install a release v9.70 or newer of `IAR Arm Toolchain`_ on your host (IAR Embedded Workbench or IAR Build Tools, perpetual or subscription licensing)
#. Make sure you have :ref:`Zephyr SDK <toolchain_zephyr_sdk>` installed on your host.
#. :ref:`Set these environment variables <env_vars>`:
- Set :envvar:`ZEPHYR_TOOLCHAIN_VARIANT` to ``iar``.
- Set :envvar:`IAR_TOOLCHAIN_PATH` to the toolchain installation directory.
#. The cloud licensed variant of the IAR Toolchain needs the :envvar:`IAR_LMS_BEARER_TOKEN` environment
variable to be set to a valid ``license bearer token`` (subscription licensing).
For example:
.. code-block:: bash
# Linux (default installation path):
export IAR_TOOLCHAIN_PATH=/opt/iar/cxarm-<version>/arm
export ZEPHYR_TOOLCHAIN_VARIANT=iar
export IAR_LMS_BEARER_TOKEN="<BEARER-TOKEN>"
.. code-block:: batch
# Windows:
set IAR_TOOLCHAIN_PATH=c:\<path>\cxarm-<version>\arm
set ZEPHYR_TOOLCHAIN_VARIANT=iar
set IAR_LMS_BEARER_TOKEN="<BEARER-TOKEN>"
.. note::
Known limitations:
- The IAR Toolchain uses ``ilink`` for linking and depends on Zephyrs CMAKE_LINKER_GENERATOR. ``ilink`` is incompatible with Zephyrs linker script template, which works with GNU ld.
- The GNU Assembler distributed with the Zephyr SDK is used for ``.S-files``.
- C library support for ``Minimal libc`` only. C++ is not supported.
- Some Zephyr subsystems or modules may contain C or assembly code that relies on GNU intrinsics and have not yet been updated to work fully with ``iar``.
- TrustedFirmware is not supported
.. _IAR Arm Toolchain: https://www.iar.com/products/architectures/arm/