Utilizziamo i cookie per rendere migliore la tua esperienza di navigazione. Per rispettare la nuova direttiva sulla privacy, è necessario chiedere il tuo consenso per impostare i cookie. Per saperne di più.
Here is an example, that has many typical components of a microcontroller application. It initializes and uses pins from a HAL library. It relies on an RTOS kernel, here Keil RTX 5. In this example, the HAL library is available in an optimized version for the three compilers. The values for gcc were created using the highest optimization, with an emphasis on size.
Keil RTX5 Blinky on LPCXpresso5411x board with NXP LPCOpen library. C runtime for ArmCC is microlib, for GCC it is newlib-nano.
Functional safety standards such as IEC 61508 and ISO 26262 require developers to justify the usage of compilers and demonstrate confidence in the selected toolchain.
Arm offers a compiler safety package to develop functional safety applications and help customers achieve certification by providing confidence-building evidence which can be used to make a toolchain justification argument.
Furthermore, Arm Run-Time System (FuSa RTS) includes the real-time operating system (RTOS) and C library that are certified for use in safety-critical applications.
Arm® Compiler 6 is the most advanced C and C++ compilation toolchain from Arm for Arm Cortex® and Arm Neoverse™ processors. Arm Compiler 6 is developed alongside the Arm architecture. Therefore, <span "="">Arm Compiler 6 is tuned to generate highly efficient code for embedded bare-metal applications ranging from small sensors to 64-bit devices.
Arm Compiler 6 is a component of Arm® Development Studio, Arm® DS-5 Development Studio, and Arm® Keil® MDK. Alternatively, you can use Arm Compiler 6 as a standalone product. The features and processors that Arm Compiler 6 supports depend on the product edition. See Compare Editions for Arm Development Studio and Arm® DS-5 Development Studio editions for the specification of the different standard products.
Arm Compiler 6 combines the optimized tools and libraries from Arm with a modern LLVM-based compiler framework.
The components in Arm Compiler 6 are:
The compiler and integrated assembler that compiles C, C++, and GNU assembly language sources.
The compiler is based on LLVM and Clang technology.
Clang is a compiler front end for LLVM that supports the C and C++ programming languages.
armasmThe legacy assembler. Only use
armasmfor legacy Arm-syntax assembly code. Use the armclang assembler and GNU syntax for all new assembly files.
armlinkThe linker combines the contents of one or more object files with selected parts of one or more object libraries to produce an executable program.
armarThe archiver enables sets of ELF object files to be collected together and maintained in archives or libraries. If you do not change the files often, these collections reduce compilation time as you do not have to recompile from source every time you use them. You can pass such a library or archive to the linker in place of several ELF files. You can also use the archive for distribution to a third-party application developer as you can share the archive without giving away the source code.
fromelfThe image conversion utility can convert Arm ELF images to binary formats. It can also generate textual information about the input image, such as its disassembly, code size, and data size.
Arm C++ libraries
The Arm C++ libraries are based on the LLVM libc++ project:
- The libc++abi library is a runtime library providing implementations of low-level language features.
- The libc++ library provides an implementation of the ISO C++ library standard. It depends on the functions that are provided by libc++abi.
Arm Compiler 6 offers lots of benefits compared to the previous Arm Compiler 6 and other available alternatives:
- It has the best-in-class code size for cores based on the Armv7-M architecture (Arm Cortex-M3/M4/M7).
- It supports cores based on Armv8-M (Arm Cortex-M23 and M33) and creates secure and non-secure code for devices with TrustZone for Armv8-M.
- It fully supports the C++14 language standard.
- Source code created for gcc can be built and optimized with Arm Compiler 6.