Hello,
I'm new to arm cortex a9. how good does the compiler support C++11 or C++14 on bare metal? where can i find the latest compiler?
I use Xilinx Zynq 7010 SoC, which comes with a Dual ARM® Cortex™-A9 MPCore™ with CoreSight™. (Zynq-7000 Silicon Devices)
Thanks,
Mike
I believe an answer regarding the tools provided by ARM will be given by someone much more qualified than I; perhaps christopherseidl or reinhardkeil.
Until then, I would like to mention that GCC can be used for building Cortex-A9 code. GCC is the compiler I use myself - because I am working on a non-Windows platform.
I believe it's particularly important to mention the open source tools, because much of the open source "source code" you can find, will build under these two well-known compilers.
GNU's Web-site contains information on GCC's C++11 (details) and C++14 (details) support.
Though I cannot use clang / LLVM myself, I would like to mention this as well, since it's becoming very popular.
Clang / LLVM also builds Cortex-A9 code and you can find details on its C++11 and C++14 support here.
are there any other ways to use C++11 C++14 on arm cortex a9 without having Clang / LLVM?
Hello, are there anything inconvenient with Clang/LLVM?
Best regards,
Yasuhiko Koumoto.
i wonder how good the debugging tools are with clang ...are there any disadvantages compared to the standard compiler?
christopherseidl and reinhardkeil can you comment?
Hello mike,
don't you say about the compiler?
Do you want any useful tool chains?
Hello Mike,
I'm not a compiler expert. I suppose this should be answered by stefanocadario.
Kind regards,
Christopher
im looking for different compiler and toolchain options. for two different os hosts: windows 7, linux
Christopher Seidl and Reinhard Keil can you comment?
Hi Mike,
both ARM Compiler 5.05 and ARM Compiler 6.01 partially support C++11 language features.
The specific list of what is supported in ARM Compiler 5.05 can be found here: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0472k/chr1407404265784.html
ARM Compiler 6.01 is based on LLVM/clang so the C++11/C++14 features supported by LLVM/clang 3.5 should be in ARM Compiler 6.01 too: http://clang.llvm.org/cxx_status.html
An important aspect to highlight is that the Rogue Wave Standard C++ Library used by both ARM Compiler 5.05 and ARM Compiler 6.01 does not support C++11/14 functionalities; this means that some of the features dependent on runtime libraries (such as exception) won't work. We are working on this at the moment and we expect to have full support for C++11 in ARM Compiler 6 this year.
ARM Compiler 6.01 fully supports ARMv7-A cores (such as Cortex-A9) and you might find more advantages than disadvantages in using it comparing to GCC: What’s new in ARM Compiler 6.01 Comparison of errors, warnings and diagnostics in ARM Compiler 6
Hope this helps.
Best Regards,
Stefano
In my experience, CLANG/LLVM is a superior compiler to GCC. Faster compiles, better error messages, more features (e.g. static analysis of your code). LLVM is based on the llvm.org project, which also has better licensing than GCC.
According to this post, the ELLCC clang/LLVM based tool chain can target a Xilinx Zynq and also run directly on the hardware if it running Linux. Pre-compiled binaries are available for Linux, Windows, and Mac OS X.
-Rich
stefanocadariorichpennington thanks for the great info.
I will look into it. Is the ARM Compiler 5.05 and ARM Compiler 6.01 available for free without ARM DS?
Where can I find the ELLCC clang/LLVM based tool chain? Is ELLCC clang/LLVM available for bare-metal?
Hi Mike, both ARM Compiler 5.05 and ARM Compiler 6.01 can be downloaded here: http://ds.arm.com/downloads/compilers/ They are not free but you can get an evaluation version by downloading DS-5 http://ds.arm.com/downloads/ and activate a 30-day license. Best Regards, Stefano
thanks for the info.
whats the difference between the ARM Compiler 6.01 (armclang) and clang + llvm + g++?
shouldn't you be able to cross compiler to a arm cortex a9 target using clang as well?
ARM Compiler 6 is based on LLVM/clang but it includes proprietary tools like armlink, armasm, fromelf and the ARM C libraries. Everything is thoroughly tested, validated and integrated in DS-5 to keep the high quality standard of ARM products. We also provide commercial support for ARM Compiler to make sure customers are able to extract the best out of the tools or if they find any issue with them.
You can find more information here ARM Compiler 6 | ARM DS-5 Development Studio
It is indeed possible to build code for Cortex-A9 using open source clang but, depending on your application, you would also need linker and libraries.
Hope this helps !
Best Regards,Stefano
You can get the ELLCC tool chain from http://ellcc.org. It is available for various Linux hosts (ARM, Mips, PowerPC, x86) as well as for Windows and Mac OS X hosts. Any of the hosts can compile for any of the targets, including the Cortex-A9. A full set of support utilities and pre-built libraries for all targets are included. Bare metal support is in progress (ELK) with the Cortex-A9 being the furthest along. ELK support for the A9 includes support for everything from very simple thread-less programs, up to and including MMU and simple file system support. All of the ELLCC libraries are included with full source code and have BSD-like non-restrictive licenses.