Como compilar um compilador gcc para arm em um PC X86

eu estou usando o zedboard, eu sei que se eu quiser compilar um programa para um dispositivo ARM eu preciso de uma versão especial do gcc que corre sob x86 e compila para ARM (compilação cruzada) ,eu quero saber se é possível que compile gcc a partir do código no x86 (que será usado no ARM), e como , eu não sei como configurá-lo.

 1
Author: sepp2k, 2017-06-03

4 answers

Recomendo obter um código binário cruzado. Em uma distribuição Linux ele é muitas vezes já empacotado. No entanto, se você insistir em construir o GCC a partir da fonte (mas tenha cuidado com dependências), leia sobre a instalar o GCC e sobre configurar o GCC. Você deve construí-lo fora da árvore de origem, e você quer passar alguma opção particular {[[0]}. Eu também recomendo algo como --program-suffix=_my

(não faço ideia do que é. relevante para a sua configuração em particular, o & board; necessita de descobrir)

Repare que um alvo não é apenas uma CPU, mas também um SO....
 2
Author: Basile Starynkevitch, 2017-06-03 03:56:06
Só precisas de um compilador cruzado. Você instala o compilador cross em sua máquina x86 e ele irá gerar código de máquina para arm. Recomendo a utilização do conjunto de ferramentas embutido da GNU arm .

Depois do qual iria compilar exactamente como qualquer outro código C / c++, excepto que faria arm-none-eabi-gcc (ou g++) em vez de apenas gcc ou g++

Tenha cuidado se estiver a fazer metal nu, pois funções como printf() podem não funcionar sem algum trabalho extra.

 1
Author: Makogan, 2017-06-03 03:57:24
Acho que podes arranjar a ferramenta de compilação cruzada para o arm. como arm-linux-gcc, arm-linux-g++ e assim por diante. Normalmente, a barra de ferramentas é um produto adicional do dispositivo arm. Se quiser usar a biblioteca de partilhas(libxxx.so) na aplicação do arm, você pode construir esta biblioteca usando a ferramenta de compilação cross com o código fonte da biblioteca. Por exemplo, a etapa de construção da biblioteca para arm é a seguinte:
//step 1: configure the cross compilation toolchain in PC. If the 
//command line "arm-linux-gcc -v" can implemented in your PC(linux os) , which means the environment is right.
//step 2: get the open source of the library and decompress
tar -zxvf  jpegsrc.v6b.tar.gz
//./configure --host=arm-linux  --prefix=/your/install/directory
// make && make install
Podes arranjar uma biblioteca para o braço. Espero que isso possa ajudar. tu!
 0
Author: WangYang, 2017-06-03 04:44:55
Há duas soluções para este problema. Primeiro é cruzar compilar o binário e depois copiá-lo. Tipo:
sudo apt-get install gcc-arm-linux-gnueabi
vi helloworld.c
arm-linux-gnueabi-gcc -o helloworld helloworld.c

Depois ftp it over.

O outro é compilar o conjunto de ferramentas do gcc e copiá-lo. Sugiro fazer o primeiro inicialmente. Especialmente como o initrd é apenas 8MB e estendê-lo é confuso, tentando obter todo o sistema operacional para o cartão sd também é problemático. Você tem que compilar o bitstream, que requer a versão de 2000 libras do vivado parece que sim.

 0
Author: Owl, 2018-08-02 10:54:06