Qual é a diferença entre ARM e armv71? [fechado]

Fechado . Esta pergunta precisa de detalhes ou clareza . Atualmente não está aceitando respostas.

Comentários

  • Você compilou este programa? Qual é a saída de readelf -A ./program.elf? Existem várias versões do Arm. ARMv2, ARMv3, ARMv5, ARMv7 … ABI hard-float e soft-float: etc.
  • Olhando este site ( wiki.debian.org / ArmEabiPort ) parece que ..: deve: .. funcionar. Pode ser necessário buscar as opções do compilador em relação ao seu hardware.
  • Compilei o programa em um computador diferente usando um SDK, mas esse SDK é fornecido pelos fabricantes do processador I ' estou usando, então imagino que o SDK deles deve ter as configurações de compilação para direcionar seu próprio chip, correto?
  • Esse seria meu palpite também, mas o SDK poderia ser usado para vários µ P. Ainda verifique as readelf -A ./program.elf informações para verificar. O erro envolve mais do que " não pode executar o arquivo binário "?
  • Espere. bash ./program.elf? O arquivo elf NÃO é um script bash. Não o execute pelo interpretador bash. É um arquivo elfo ./program.elf. Suponha que execute o conjunto de bits. chmod a+x ./program.elf.

Resposta

O comando bash ./program.elf enviará o arquivo por meio do interpretador bash.

Um arquivo elf é um arquivo binário compilado e deve ser executado na linha de comando da seguinte forma: ./program.elf

Não se esqueça de definir o bit executável para o arquivo com:

chmod a+x ./program.elf 

Resposta

Pelo que posso dizer, é muito mais comum que um processador ARMv7 seja o modelo ARMv7-A (o tipo usado para o Snapdragon 600/800 no Galaxy S4 e Nexus 5 respectivamente, bem como o Raspberry Pi 2 / modelo B), no entanto, sua saída lista o chip do sistema como um ARMv71 (também conhecido como ARMv7 Revisão 1). Parece inteiramente possível que a variante do SDK do processador ARMv7 que você selecionou ao compilar / construir o programa era simplesmente o subconjunto errado do ARMv7, semelhante a se você tivesse pretendido construir para ARMv7-A e em vez disso construído para ARMv7-M. Agora, isso é apenas uma suposição, pois não tenho ideia para qual processador / dispositivo você estava construindo, ou no que diz respeito a esse assunto, mas dado o quão exigentes os processadores SoC são quando se trata de executar programas não compilados especificamente para eles, sugiro compilar o código diretamente na máquina em questão, se possível.

Comentários

  • Compilar nativamente foi meu primeiro pensamento, mas tentar fazer isso trouxe um conjunto diferente de problemas que eu ' estou tentando resolver. O chip que estou usando é um processador Xilinx e estou compilando no SDK do Xilinx em um computador Windows. Eu presumi que o Xilinx SDK deveria compilar para a arquitetura certa para o ARM que eles usam nos processadores Xilinx, então ' é estranho para mim que isso não ' parece ser o caso.
  • Olhando para isso, parece que o Xilinx tem várias famílias de processadores, todas as quais se enquadram na categoria ARMv7x, mas utilizam diferentes combinações de vários núcleos de braço que são frequentemente encontrados em cpus ARMv7. Por exemplo, um modelo pode ter dois A9-Cortex e um A7-Cortex como coprocessador secundário, enquanto outro pode ter um A8-Cortex com outro A5-Cortex único como coprocessador. (Não tenho ideia se esses são combos reais presentes nas CPUs Xilinx, apenas exemplos: P

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *