A plataforma ARM tem uma cadeia de ferramentas universal / compilador?

0

Recentemente, tentei criar meu próprio conjunto de ferramentas de compilação cruzada para uma plataforma de braço. Percebi com o script autoconf do GCC, tenho que passar variáveis como:

--with-cpu=cortex-m4 \
--with-fpu=fpv4-sp-d16 \
--with-float=hard \
--with-mode=thumb \

Portanto, parece que diferentes plataformas ARM devem ter uma cadeia de ferramentas / compilador diferente, pois tenho que configurar a cpu, a fpu etc. Mas então descobri que há algum tipo de binários pré-fabricados dessas ferramentas.

link

Eu tentei essa cadeia de ferramentas e compilei um programa hello world e tentei em minha placa ARM de destino, então ele mostra "falha de segmentação". OK, pelo menos não é "não pode executar o arquivo binário: erro de formato Exec"

Mas eu ainda estou me perguntando, como é que não funciona? Ou é suposto trabalhar realmente?

    
por J.R. 23.10.2017 / 15:29

1 resposta

0

Ao criar o toolchain em si, você precisa configurar quais recursos serão suportados. Você pode criar um compilador "slim", suportando apenas os recursos necessários para o destino desejado.

Mas você também pode suportar tudo que a plataforma ARM tem a oferecer e obter um compilador desajeitado.

Para os recursos em si, você deve diferir entre diferentes tipos:

  • Sinalizadores de otimização como -mcpu não são necessários, eles são apenas para otimizar o código para um determinado processador ARM
  • O recurso fpu do seu núcleo ARM, por outro lado, deve estar disponível para usar o fpu.
  • Seu float=hard depende do sistema operacional, não do processador: ele permite passar flutuadores para funções em registros flutuantes, o que pode ser um grande aumento de velocidade porque a transferência entre registros ARM e registros flutuantes é lenta. Mas, para a ligação, o sistema precisa concordar com isso.
  • O suporte para o polegar também é opcional. Você pode usar tanto se o núcleo suportar isso, mas hoje em dia seria estúpido não deixar o compilador escolher o modo miniatura.
por 23.10.2017 / 18:37