Skip to content

Added documentation for using ARM Compiler 5 with 5.12 release #999

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
30 changes: 29 additions & 1 deletion docs/tools/tools_intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ We created the Mbed command-line tool (Mbed CLI), a Python-based tool, specifica

Mbed OS 5 can be built with various toolchains. The currently supported versions are:

- [Arm compiler 6.11](https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6).
- [Arm compiler 6.11 (default ARM toolchain)](https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6).
- [Arm compiler 5.06 update 6 (to be deprecated in the future)](https://developer.arm.com/products/software-development-tools/compilers/arm-compiler-5/downloads).
Copy link
Contributor

@theotherjimmy theotherjimmy Mar 13, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This strikes me as odd: how is "to be deprecated in the future" different from "deprecated"? My understanding of deprecated is that it means: discourage the use of in favor of a newer or better alternative.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@theotherjimmy - My understanding is that its not deprecated yet as we still have targets still compiling with ARMC5, but will be deprecated soon. This provides the warning that developers should actively look into moving to ARMC6 toolchain. Once we have all targets moved to ARMC6 we will probably say its deprecated and remove it completely in the release afterwards.
@MarceloSalazar - Do you have more comments on this?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SenRamakri
The important point here is that Arm Compiler 5 is still supported in 5.12.
As you've incorporated this already, I don't have more comments. Thanks!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw, the correct name of the toolchain is "Arm Compiler" - with "C" upper case - see links.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we know something will be discouraged in favor of an alternative, how is that not discouraging it's use already? That's my point really: that telling people it'll be discouraged in the future is the same as discouraging it's use now. I'm pretty sure this verbiage is common, so I'm not going to block on such a bike shed.

- [GNU Arm Embedded version 6 (6-2017-q1-update)](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads).
- [IAR Embedded Workbench 8.32.1](https://www.iar.com/iar-embedded-workbench/tools-for-arm/arm-cortex-m-edition/).

Expand All @@ -44,3 +45,30 @@ For more information, please see the [Online Compiler page](developing-mbed-onli

You can export your project from any of our tools to third party tools. For instructions, as well as tool-specific information, see [the Exporting to third party toolchains page](exporting.html).

<div style="background-color:#F3F3F3; text-align:left; vertical-align: middle; padding:15px 30px;"> **Note:** We encourage you to switch to Arm Compiler 6 soon because we will deprecate Arm Compiler 5 support in the future. However, if you need to update to Mbed OS 5.12 but still require compiling with Arm Compiler 5 until you are in possession of Arm Compiler 6, we provide methods to override the Arm toolchain version. If you do this, your target may not be able to compile with Arm Compiler 5, or you may see undefined behaviors.

To force Arm Compiler 5, you can use the following options:

- Create or update your `mbed_app.json` as below. This is the recommended method for applications to use ARM Compiler 5.

```
{
"target_overrides": {
"*": {
"target.supported_toolchains": ["ARMC5", "GCC_ARM", "IAR"]
}
}
}
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved the porting content out in another PR: #1013


- For porting a target that cannot use Arm Compiler 6 at this time, modify the `supported_toolchains` entry in targets.json to replace all `ARM`, `ARMC6` entries with `ARMC5` as below.

```
"MY_TARGET_NAME": {
"supported_form_factors": [...],
"core": "Cortex-M4",
"supported_toolchains": ["ARMC5", "GCC_ARM", "IAR"],
...
}
```
</div>