On Fri, Mar 9, 2012 at 5:51 AM, William Mills wmills@ti.com wrote:
All,
I need to supply a Linaro toolchain "aligned" (same source code) bare-metal compiler to a group doing benchmarking on A15.
First off my assumption is that we will write our own boot and semi hosting code. (semi-hosting for TI emulators/simulators is different than ARM RDI semi-hosting.)
I was planning on looking at the two toolchains here[1] and here [2]: [1] https://launchpad.net/linaro-toolchain-binaries [2] https://launchpad.net/gcc-arm-embedded
I was then going to build a hybrid that was newlib based but appropriate for armv7-a (instead of cortext-m3) and maybe even -mtune'ed for A15.
However looking at the gcc-arm-embedded release more[3] I see that it supports ARMv7-R. It supports both thumb and non-thumb modes, both softfp and hardfp ABIs.
What would I really gain by building my own? For app code the user should be able to add -mtune=cortex-a15 and still be compatible with the pre-built R4/R5 libraries. The only performance difference should be in the library code and that should be only pipeline tuning if I understand the difference between armv7-a and armv7-r correctly.
Am I missing something? Should I build my hybrid anyway?
[1] https://launchpadlibrarian.net/88152755/readme.txt
[BTW: has the below project been obsoleted by the gcc-arm-embedded one? Perhaps gcc-arm-embedded should be referenced in the description of the page below. https://launchpad.net/linaro-toolchain-unsupported ]
Hi William. I recommend using the exact same tools we use for building the binary toolchains but reconfiguring for a baremetal build. That way you can get the Cortex-A15 improvements that we've been doing in a simple to make binary toolchain.
I wrote some brief instructions on this yesterday at: https://wiki.linaro.org/WorkingGroups/ToolChain/BinaryBuild
Also see the building from source section in the README: https://launchpadlibrarian.net/93804205/README.txt
The extra steps are to tune for the Cortex-A15 by default and use a baremetal instead of prebuilt sysroot.
gcc-arm-embedded is from our friends at ARM's Cortex-R&M group. We share the same requirements and build tools but have a different focus - they're a long term supported build of FSF 4.6 for the Cortex-R&M while we're the latest performance on Cortex-A.
The linaro-toolchain-unsupported builds are the Linaro toolchain in a baremetal Cortex-M configuration. I've been doing these on my own time as I have a personal STM32 project I'm working on.
Hope that helps,
-- Michael