Comentários
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
readelf -A ./program.elf
informações para verificar. O erro envolve mais do que " não pode executar o arquivo binário "?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
.