Skip to content

Commit 275dc82

Browse files
tejlmandcfriedt
authored andcommitted
doc: Arm Compiler 6 description added to the 3rd party toolchain page
This commit adds description on how to use the Arm Compiler 6 / armclang toolchain with Zephyr. Signed-off-by: Torsten Rasmussen <[email protected]>
1 parent ae757fb commit 275dc82

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

doc/getting_started/toolchain_3rd_party_x_compilers.rst

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,57 @@ GNU ARM Embedded
6161
- Set :envvar:`ZEPHYR_TOOLCHAIN_VARIANT` to ``gnuarmemb``.
6262
- Set :envvar:`GNUARMEMB_TOOLCHAIN_PATH` to the brew installation directory (something like ``/usr/local``)
6363

64+
.. _toolchain_armclang:
65+
66+
Arm Compiler 6
67+
**************
68+
69+
#. Download and install a development suite containing the `Arm Compiler 6`_
70+
for your operating system.
71+
72+
#. :ref:`Set these environment variables <env_vars>`:
73+
74+
- Set :envvar:`ZEPHYR_TOOLCHAIN_VARIANT` to ``armclang``.
75+
- Set :envvar:`ARMCLANG_TOOLCHAIN_PATH` to the toolchain installation
76+
directory.
77+
78+
#. The Arm Compiler 6 needs the :envvar:`ARMLMD_LICENSE_FILE` environment
79+
variable to point to your license file or server.
80+
81+
For example:
82+
83+
.. code-block:: console
84+
85+
# Linux, macOS, license file:
86+
export ARMLMD_LICENSE_FILE=/<path>/license_armds.dat
87+
# Linux, macOS, license server:
88+
export ARMLMD_LICENSE_FILE=8224@myserver
89+
90+
# Windows, license file:
91+
> set ARMLMD_LICENSE_FILE=c:\<path>\license_armds.dat
92+
# Windows, license server:
93+
> set ARMLMD_LICENSE_FILE=8224@myserver
94+
95+
#. If the Arm Compiler 6 was installed as part of an Arm Development Studio, then
96+
you must set the :envvar:`ARM_PRODUCT_DEF` to point to the product definition file:
97+
See also: `Product and toolkit configuration <https://developer.arm.com/tools-and-software/software-development-tools/license-management/resources/product-and-toolkit-configuration>`_.
98+
For example if the Arm Development Studio is installed in:
99+
``/opt/armds-2020-1`` with a Gold license, then set :envvar:`ARM_PRODUCT_DEF`
100+
to point to ``/opt/armds-2020-1/gold.elmap``.
101+
102+
.. note::
103+
104+
The Arm Compiler 6 uses ``armlink`` for linking. This is incompatible
105+
with Zephyr's linker script template, which works with GNU ld. Zephyr's
106+
Arm Compiler 6 support Zephyr's CMake linker script generator, which
107+
supports generating scatter files. Basic scatter file support is in
108+
place, but there are still areas covered in ld templates which are not
109+
fully supported by the CMake linker script generator.
110+
111+
Some Zephyr subsystems or modules may also contain C or assembly code
112+
that relies on GNU intrinsics and have not yet been updated to work fully
113+
with ``armclang``.
114+
64115
Intel oneAPI Toolkit
65116
*********************
66117

@@ -161,3 +212,4 @@ You can build toolchains from source code using crosstool-NG.
161212
162213
.. _GNU ARM Embedded: https://developer.arm.com/open-source/gnu-toolchain/gnu-rm
163214
.. _crosstool-ng site: http://crosstool-ng.org
215+
.. _Arm Compiler 6: https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6

0 commit comments

Comments
 (0)