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.
70 lines
2.2 KiB
70 lines
2.2 KiB
.. _toolchain_cadence_xcc: |
|
|
|
Cadence Tensilica Xtensa C/C++ Compiler (XCC) |
|
############################################# |
|
|
|
#. Obtain Tensilica Software Development Toolkit targeting the specific SoC |
|
on hand. This usually contains two parts: |
|
|
|
* The Xtensa Xplorer which contains the necessary executables and |
|
libraries. |
|
|
|
* A SoC-specific add-on to be installed on top of Xtensa Xplorer. |
|
|
|
* This add-on allows the compiler to generate code for the SoC on hand. |
|
|
|
#. Install Xtensa Xplorer and then the SoC add-on. |
|
|
|
* Follow the instruction from Cadence on how to install the SDK. |
|
|
|
* Depending on the SDK, there are two set of compilers: |
|
|
|
* GCC-based compiler: ``xt-xcc`` and its friends. |
|
|
|
* Clang-based compiler: ``xt-clang`` and its friends. |
|
|
|
#. Make sure you have obtained a license to use the SDK, or has access to |
|
a remote licensing server. |
|
|
|
#. :ref:`Set these environment variables <env_vars>`: |
|
|
|
* Set :envvar:`ZEPHYR_TOOLCHAIN_VARIANT` to ``xcc`` or ``xt-clang``. |
|
* Set :envvar:`XTENSA_TOOLCHAIN_PATH` to the toolchain installation |
|
directory. |
|
* Set :envvar:`XTENSA_CORE` to the SoC ID where application is being |
|
targeting. |
|
* Set :envvar:`TOOLCHAIN_VER` to the Xtensa SDK version. |
|
|
|
#. For example, assuming the SDK is installed in ``/opt/xtensa``, and |
|
using the SDK for application development on ``intel_adsp_cavs15``, |
|
setup the environment using: |
|
|
|
.. code-block:: console |
|
|
|
# Linux |
|
export ZEPHYR_TOOLCHAIN_VARIANT=xcc |
|
export XTENSA_TOOLCHAIN_PATH=/opt/xtensa/XtDevTools/install/tools/ |
|
export XTENSA_CORE=X6H3SUE_RI_2018_0 |
|
export TOOLCHAIN_VER=RI-2018.0-linux |
|
|
|
#. To use Clang-based compiler: |
|
|
|
* Set :envvar:`ZEPHYR_TOOLCHAIN_VARIANT` to ``xt-clang``. |
|
|
|
* Note that the Clang-based compiler may contain an old LLVM bug which |
|
results in the following error: |
|
|
|
.. code-block:: console |
|
|
|
/tmp/file.s: Assembler messages: |
|
/tmp/file.s:20: Error: file number 1 already allocated |
|
clang-3.9: error: Xtensa-as command failed with exit code 1 |
|
|
|
If this happens, set :envvar:`XCC_NO_G_FLAG` to ``1``. |
|
|
|
* For example: |
|
|
|
.. code-block:: console |
|
|
|
# Linux |
|
export XCC_NO_G_FLAG=1
|
|
|