You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.2 KiB
54 lines
2.2 KiB
.. _toolchain_armclang: |
|
|
|
Arm Compiler 6 |
|
############## |
|
|
|
#. Download and install a development suite containing the `Arm Compiler 6`_ |
|
for your operating system. |
|
|
|
#. :ref:`Set these environment variables <env_vars>`: |
|
|
|
- Set :envvar:`ZEPHYR_TOOLCHAIN_VARIANT` to ``armclang``. |
|
- Set :envvar:`ARMCLANG_TOOLCHAIN_PATH` to the toolchain installation |
|
directory. |
|
|
|
#. The Arm Compiler 6 needs the :envvar:`ARMLMD_LICENSE_FILE` environment |
|
variable to point to your license file or server. |
|
|
|
For example: |
|
|
|
.. code-block:: bash |
|
|
|
# Linux, macOS, license file: |
|
export ARMLMD_LICENSE_FILE=/<path>/license_armds.dat |
|
# Linux, macOS, license server: |
|
export ARMLMD_LICENSE_FILE=8224@myserver |
|
|
|
.. code-block:: batch |
|
|
|
# Windows, license file: |
|
set ARMLMD_LICENSE_FILE=c:\<path>\license_armds.dat |
|
# Windows, license server: |
|
set ARMLMD_LICENSE_FILE=8224@myserver |
|
|
|
#. If the Arm Compiler 6 was installed as part of an Arm Development Studio, then |
|
you must set the :envvar:`ARM_PRODUCT_DEF` to point to the product definition file: |
|
See also: `Product and toolkit configuration <https://developer.arm.com/tools-and-software/software-development-tools/license-management/resources/product-and-toolkit-configuration>`_. |
|
For example if the Arm Development Studio is installed in: |
|
``/opt/armds-2020-1`` with a Gold license, then set :envvar:`ARM_PRODUCT_DEF` |
|
to point to ``/opt/armds-2020-1/gold.elmap``. |
|
|
|
.. note:: |
|
|
|
The Arm Compiler 6 uses ``armlink`` for linking. This is incompatible |
|
with Zephyr's linker script template, which works with GNU ld. Zephyr's |
|
Arm Compiler 6 support Zephyr's CMake linker script generator, which |
|
supports generating scatter files. Basic scatter file support is in |
|
place, but there are still areas covered in ld templates which are not |
|
fully supported by the CMake linker script generator. |
|
|
|
Some Zephyr subsystems or modules may also contain C or assembly code |
|
that relies on GNU intrinsics and have not yet been updated to work fully |
|
with ``armclang``. |
|
|
|
.. _Arm Compiler 6: https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6
|
|
|