As a beginner, I am confused with setting the adequate toolchain (the whole concept in new for me). My goal is to program the ARM Cortex-A9 on the board Zynq 7000 using the Xilinx SDK.

In order to write C project, the SDK wizard automatically selects Cross GNU ARM Toolchain and asks me to select the toolchain name and configure its path.

My questions are:

  1. Cross + GNU + ARM toolchain, can anyone explain me the relation between those 3 or what do they mean together ?

When looking for Cross GNU ARM Toolchain I found in the ARM website they cite :

GNU Arm Embedded Toolchain Pre-built GNU toolchain for Arm Cortex-M and Cortex-R processors

  1. Does that mean that there is no Cross GNU ARM Toolchain for Cortex-A ? if that the case, so how can we program the processor of the zynq board ?

I may be confusing some concepts, so any hint and clarification would be helpful.


2 Answers 2


1) Cross - meaning you can compile on architecture A to the machine code of architecture B.
2) GNU - recursive acronym for "GNU's Not Unix!". A Linux based project focusing on providing free open source software.
3) ARM - processor core architecture. Which is the target architecture for your toolchain.

All together - a toolchain to compile ARM programs on your (non-ARM) computer, provided by GNU.

4) There is Cross GNU ARM Toolchain for Cortex-A. And many. One of these is provided from the ARM website itself: https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads

  • 1
    \$\begingroup\$ That says Cortex M and Cortex R. \$\endgroup\$ Sep 13, 2018 at 17:20
  • 1
    \$\begingroup\$ @ScottSeidman You are right. Apparently I used it for Cortex-M... The Cortex-A is provided directly from ARM website. Fixing. \$\endgroup\$
    – Eugene Sh.
    Sep 13, 2018 at 17:23
  • \$\begingroup\$ Debian also provides an Cross GNU ARM Toolchain for a ton of different models in the arm-eabi-none-gcc package. Or you can always download the binutils and gcc sources from GNU.org and compile it yourself. Google for instructions if you need to go that way. \$\endgroup\$ Nov 19, 2018 at 15:47

Answering the question 2: here you can find toolchain for ARM Cortex-A family. Note: there is no support for windows64 only for linux or windows32.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.